如何更改MDI子窗口图标?

请看下图:

我已经动态创建了子窗口

我尝试使用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”)

但你做错了,因为:

  1. 您可以在MDI窗口本身而不是子窗口上设置图标
  2. 此外,.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));

这也是同样的道理

发表评论