怎么了?
我尝试使用setWindowIcon
函数如下:
mdiWindows->setWindowIcon(QIcon("icon.ico"));
但你做错了,因为:
- 您将图标设置为mdiWindow 本身而不是它的子窗口。
- 除了,
.ico
is for Windows 中的应用程序图标, 你应该
只需使用.jpg
or .png
格式。默认支持格式列表详情可见here http://qt-project.org/doc/qt-4.8/qimagereader.html#supportedImageFormats.
(如果你坚持.ico
文件,有一个解决方法。查看:“.ico 图标未显示在 Windows 上” https://stackoverflow.com/questions/13891591/ico-icons-not-showing-up-on-windows)
解决方案:
因此,改变这一行mdiWindows->setWindowIcon(QIcon("icon.ico"));
进入:widget->setWindowIcon(QIcon(":/myIcon/icon.png"));
(请注意,您可以对其他 QWidget 衍生产品执行相同的操作:QMainWindow、QDialog...等来设置其窗口图标)
换句话说,将上面的行插入到您的代码中:
//QWidget *widget = new QWidget(this);
//QTextEdit *TextEdit = new QTextEdit(widget);
//TextEdit->setObjectName("myTextEdit");
widget->setWindowIcon(QIcon(":/myIcon/icon.png"));
//QMdiSubWindow *mdiWindows = ui->mdiArea->addSubWindow(widget);
//mdiWindows->setGeometry(5, 5, 300, 250);
//mdiWindows->setWindowTitle("untitled" + QString::number(ui->mdiArea->subWindowList().count()));
//mdiWindows->setWindowState(Qt::WindowMaximized);
//mdiWindows->layout()->addWidget(TextEdit);
//mdiWindows->layout()->setContentsMargins(0,0,0,
//mdiWindows->layout()->setSpacing(
//mdiWindows->show();
P.S.
以防万一,如果您想稍后设置它们,您可以致电QMdiArea::subWindowList() http://qt-project.org/doc/qt-4.8/qmdiarea.html#subWindowList获取 mdiWindows 列表,然后分别设置它们的图标。例如:
mdiWindows->subWindowList().at(1)->setWindowIcon(QIcon(":/myIcon/icon.png"));
这工作原理是一样的。