请看下图:
我已经动态创建了子窗口
我尝试使用setWindowIcon函数,如下所示:
mdiWindows->;setWindowIcon(QIcon(“icon.ico”);
但效果并不好
另请参见以下代码(MDI窗口创建):
QWidget*widget=新的QWidget(此);
QTextEdit*TextEdit=新的QTextEdit(小部件);
文本编辑->;setObjectName(“myTextEdit”);
QMdiSubWindow*mdiWindows=ui->;MDI区域->;添加子窗口(小部件);
MDI窗口->;集合几何(5,5300250);
MDI窗口->;setWindowTitle(“无标题”+QString::number(ui->;mdiArea->;subWindowList().count());
MDI窗口->;setWindowsState(Qt::WindowMaximized);
MDI窗口->;布局()->;addWidget(文本编辑);
MDI窗口->;布局()->;setContentsMargins(0,0,0,
mdiWindows->;布局()->;设置间距(
mdiWindows->;显示();
如何更改MDI子窗口图标?
怎么了
我尝试使用
setWindowIcon函数,如下所示:
mdiWindows->setWindowIcon(QIcon(“icon.ico”)
但你做错了,因为:
- 您可以在MDI窗口本身而不是子窗口上设置图标
- 此外,
.ico用于Windows中的应用程序图标,您应该
只需使用.jpg或.png格式即可。可在此处找到默认支持格式列表的详细信息
(如果您坚持使用.ico文件,则有一个解决方法。请选中:“.ico图标未显示在Windows上”)
解决方案:
因此,请更改此行mdiWindows->;setWindowIcon(QIcon(“icon.ico”);
进入:小部件->;设置窗口图标(QIcon(:/myIcon/icon.png”);
(请注意,您可以在其他QWidget衍生产品上执行相同的操作:QMainWindow、QDialog…等,以设置其窗口图标)
换句话说,在代码中插入上述行:
//QWidget*widget=新的QWidget(这个);
//QTextEdit*TextEdit=新的QTextEdit(小部件);
//TextEdit->;setObjectName(“myTextEdit”);
小部件->;设置窗口图标(QIcon(:/myIcon/icon.png));
//QMdiSubWindow*mdiWindows=ui->;mdiArea->;添加子窗口(小部件);
//mdiWindows->;setGeometry(5、5、300、250);
//mdiWindows->;setWindowTitle(“无标题”+QString::number(ui->;mdiArea->;子窗口列表().count());
//mdiWindows->;设置窗口状态(Qt::WindowMaximized);
//mdiWindows->;布局()->;添加小部件(文本编辑);
//mdiWindows->;布局()->;设置内容边缘(0,0,0,
//mdiWindows->;布局()->;设置间距(
//mdiWindows->;显示();
附言
以防万一,如果以后要设置它们,可以调用QMdiArea::subWindowList()获取mdiWindows列表,然后分别在其上设置图标。例如:
mdiWindows->;子窗口列表()。位于(1)->;设置窗口图标(QIcon(:/myIcon/icon.png));
这也是同样的道理