如何从QMdiSubWindow中删除Qt图标

时间:2015-07-09 00:49:47

标签: c++ qt

尝试从QMdiSubWindow中删除Qt图标但收效甚微。下面是一张显示左上角图标的图片。

enter image description here

这是一些代码,似乎应该将Icon设置为空,但不是。

QMdiSubWindow* sub = new QMdiSubWindow;

sub->setAttribute( Qt::WA_DeleteOnClose );
sub->setWidget( myWidget );
sub->setWindowIcon( QIcon() );
//tried this too
//sub->setWindowIcon( QIcon("") );

mdiArea->addSubWindow( traceSub );

谢谢!

3 个答案:

答案 0 :(得分:5)

这可以通过以下方式完成:

sub->setWindowIcon( QIcon(QPixmap(1,1)) );

答案 1 :(得分:3)

我没有删除的解决方案,但您可以通过设置透明图标来获得相同的结果。在我的例子中,一个32x32透明的png。

sub->setWindowIcon( QIcon("your_transparent_icon") );

enter image description here

enter image description here

答案 2 :(得分:1)

删除/替换Qt默认窗口图标

首先导航到您的UI(用户界面)表单并访问属性栏(应该在右侧默认值)。 然后向下滚动直到看到“windowIcon”并单击该框并选择下拉箭头。 Changing window icon Qt

然后继续选择一个项目,如我的图片1的左侧框中所示。 要添加此处,请在Qt中添加资源中的项目。 这里有一些文档 - http://doc.qt.io/qt-5/resources.html

其他答案是可以接受的,但没有详细介绍从UI进行访问,这不是一个糟糕的方法,但如果你想保留代码中的所有内容,你可以很容易地这样做。

// Replace relevant code, use ico files in UI (method shown above).
form->setWindowIcon(QIcon(QPixmap(1,1)));

使用.ico文件是一种更好,更符合行业标准的方法,因为它可以保持与显示器相关的尺寸,因为它可以容纳各种尺寸的图像。 设置一个透明图标并不是最好的事情,因为当用户运行应用程序时,他们将看不到它并且它看起来很麻烦 - 但是对于测试来说这很好。