Qt系统对话框中文化及应用程序实现重启及使用QSS样式表文件及使用程序启动界面

一、应用程序中文化

1).Qt安装目录下有一个目录translations/,在此目录下有qt_zh_CN.ts和 qt_zh_CN.qm
把它们拷贝到你的工程目录下。

2).在main函数加入下列代码:
QTranslator translator(0); 
translator.load("qt_zh_CN.qm");
QApplication app(argc, argv);
app.installTranslator(&translator);
别忘了头文件包含QTranslator

 

二、应用程序实现重启

 


void CGUIfeaturesList::on_restartBtn_clicked()
{
    qApp->quit();
    QProcess::startDetached(qApp->applicationFilePath(), QStringList());
}

 

 

三、使用QSS样式表文件

 

QFile file("./style.qss");
    file.open(QFile::ReadOnly);
    QString styleSheet = QLatin1String(file.readAll());
    qApp->setStyleSheet(styleSheet);
    file.close();

 

 

四、使用程序启动界面

 

QPixmap pixmap("./start.png");
    QSplashScreen splash(pixmap);
    splash.show();

    QTime dieTime = QTime::currentTime().addMSecs(3000);
    while( QTime::currentTime() < dieTime )
       a.processEvents(QEventLoop::AllEvents, 100);

    
    MainWindow w;
    w.move((QApplication::desktop()->width() - w.width())/2,(QApplication::desktop()->height() - w.height())/2);
    w.show();

    splash.finish(&w);

 

 

main.cpp文件参考如下:

 


#include <QTextCodec>
#include <QPixmap>
#include <QSplashScreen>
#include <QTime>
#include <QTextCodec>
#include <QFile>
#include <QTranslator>
#include <QtGui>

int main(int argc, char *argv[])
{
    QTranslator translator(0);//标准对话框中文化
    translator.load("qt_zh_CN.qm");
    QApplication a(argc, argv);
    a.installTranslator(&translator);

    QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
//    QTextCodec::setCodecForTr(QTextCodec::codecForName(QTextCodec::codecForLocale()->name()));
//    QTextCodec::setCodecForLocale(QTextCodec::codecForName(QTextCodec::codecForLocale()->name()));
//    QTextCodec::setCodecForCStrings(QTextCodec::codecForName(QTextCodec::codecForLocale()->name()));

    QFile file("./style.qss");
    file.open(QFile::ReadOnly);
    QString styleSheet = QLatin1String(file.readAll());
    qApp->setStyleSheet(styleSheet);
    file.close();

    QPixmap pixmap("./start.png");
    QSplashScreen splash(pixmap);
    splash.show();

    QTime dieTime = QTime::currentTime().addMSecs(3000);
    while( QTime::currentTime() < dieTime )
       a.processEvents(QEventLoop::AllEvents, 100);

    CGUIfeaturesList w;
    w.move((QApplication::desktop()->width() - w.width())/2,(QApplication::desktop()->height() - w.height())/2);
    w.show();

    splash.finish(&w);
    
    return a.exec();
}

 

http://blog.csdn.net/liuguangzhou123/article/details/8079996

posted @   findumars  Views(555)  Comments(0Edit  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2016-02-03 keepalived+LVS 实现双机热备、负载均衡、失效转移 高性能 高可用 高伸缩性 服务器集群
2016-02-03 分享最新15个加速 Web 开发的框架和工具(梦想天空)
2016-02-03 服务启动错误1053,一例解决方案(给用户添加NetworkService权限)
2016-02-03 Windows Services的1053错误的解决办法之一:修改注册表允许的响应时间
2016-02-03 20款Notepad++插件下载和介绍
2016-02-03 分享20个华丽的模态窗口弹出效果示例(梦想天空)
2016-02-03 Win32 进程间通信的分析与比较(13种方法)
点击右上角即可分享
微信分享提示