QT中修改窗口的标题和图标

您所在的位置:网站首页 图片名称怎么改 QT中修改窗口的标题和图标

QT中修改窗口的标题和图标

2024-07-11 22:28| 来源: 网络整理| 查看: 265

修改窗口标题

QT的窗口默认名字是MainWindow,在这里介绍两种方法修改窗口的Title

1.直接通过UI设计器修改:

我修改成了"我的窗口"运行后,显示如下:

好了,我们需要去找下,"我的窗口"这个字符串被QT放在哪里的? 用文本编辑器打开mainwindow.ui,可以看出,实际上是放在这个XML里面了

这个XML文件会被编译成代码(C#也是如此,不知道他们谁COPY谁) 找到build-ModifyTitleAndLogo-unknown-Debug\ui_mainwindow.h这个文件,打开,会发现有这样代码:

void retranslateUi(QMainWindow *MainWindow) { MainWindow->setWindowTitle(QApplication::translate("MainWindow", "\346\210\221\347\232\204\347\252\227\345\217\243", 0, QApplication::UnicodeUTF8)); pushButton->setText(QApplication::translate("MainWindow", "PushButton", 0, QApplication::UnicodeUTF8)); } // retranslateUi

346 210 221...243这些是什么呢?我猜是"我的窗口"的UTF8描述,因为一个中文用三个BYTE来表示,核对了一下UTF8编码,不是的我又猜是UNICODE,但微软的UNICODE是一个汉字用两个BYTE表示,个数对不上,值也对不上,我想,正如他代码写的那样,大概就是"我的窗口"的UnicodeUTF8的表述吧,这种编码在我的实际编程中没有遇到过,但这个并不影响理解.

2.直接用代码修改:

UTF-8编码早就大行其道了,C#的代码默认是UTF-8的,各种WEB也基本都是UTF-8,那我们就统一使用UTF-8 在函数的入口处,增加如下代码,同时包含头文件   #include

QTextCodec *codec = QTextCodec::codecForName("UTF-8"); //获取系统编码 QTextCodec::setCodecForLocale(codec); QTextCodec::setCodecForCStrings(codec); QTextCodec::setCodecForTr(codec);

然后就可以在代码中支持设置窗口的标题了,设置的方法非常简单 代码是: setWindowTitle("带LOGO的窗口");

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); setWindowTitle("带LOGO的窗口"); } 修改窗口图标

准备好一个文件logo.png 对项目点右键,添加新文件

命名可以命名一个你喜欢的名字,我在这里命名为myres

进入编辑myres.qrc的界面: 添加->添加前缀 前缀用/线

然后点添加->添加文件,先择刚刚准备好的logo.png(注意:我的logo.png是放在项目根目录res目录下的)

然后用CTRL+S保存一下 回到设计MainWindow的界面设置器上,如下操作:

大功告成!

 

接下来,需要小小地思考一下,logo.png被QT放到哪儿去了? 实际上,我认为是放在EXE文件里去了,用16进制工具打开exe,搜索PNG,有两处 1.logo.png的文件名 2.logo.png的文件头PNG 如下:

代码见:https://gitee.com/flash008/qt_window/tree/master/000100/

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3