看下图:
我已经Sub Window
动态创建了。
我尝试使用setWindowIcon
如下功能:
mdiWindows->setWindowIcon(QIcon("icon.ico"));
但是效果不佳。
另请参见以下代码(创建MDI窗口):
QWidget *widget = new QWidget(this);
QTextEdit *TextEdit = new QTextEdit(widget);
TextEdit->setObjectName("myTextEdit");
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();
如何更改MDI subWindow图标?
我尝试使用
setWindowIcon
如下函数:mdiWindows-> setWindowIcon(QIcon(“ icon.ico”));
但是您做错了,因为:
.ico
对于Windows中的“应用程序”图标,您应该只使用.jpg
或.png
格式化。默认支持格式列表的详细信息可以在这里找到。(如果坚持使用.ico
文件,则有一种解决方法。请检查:“。ico图标未在Windows上显示”)
因此,更改此行 mdiWindows->setWindowIcon(QIcon("icon.ico"));
变成: widget->setWindowIcon(QIcon(":/myIcon/icon.png"));
(注意,您可以在其他QWidget派生工具上执行相同的操作:QMainWindow,QDialog ... etc来设置其窗口图标)
换句话说,将以上行插入代码中:
//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();
以防万一,如果以后要设置它们,可以调用QMdiArea::subWindowList()
以获取mdiWindows列表,然后分别在其上设置图标。例如:
mdiWindows->subWindowList().at(1)->setWindowIcon(QIcon(":/myIcon/icon.png"));
这是一样的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句