Qt主窗口上的图标不设置[重复]
Posted
技术标签:
【中文标题】Qt主窗口上的图标不设置[重复]【英文标题】:Icon on Qt main windows not to set [duplicate] 【发布时间】:2019-01-04 12:14:41 【问题描述】:我是 Qt 和 Qt 设计师的新手。我的操作系统是 ubuntu 18.4,我正在使用 qt5。我通过 qt 设计器创建了一个简单的 Qwindows(默认安装 Qt 设计器)。第一步,我想更改主窗口的图标,以便像这样更改图标属性:
但是当我在设计器中预览它时,没有看到这个图标? 我将此 UI 转换为 py 并将此部分转换为设置图标:
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(640, 480)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("res/main.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
MainWindow.setWindowIcon(icon)
self.centralwidget = QtWidgets.QWidget(MainWindow)
再次运行此python代码后未看到图标:
有什么问题?
我的 Qt 设计器版本是 5.9.5
【问题讨论】:
ubuntu 主题去掉了 topbar 图标,这与 PyQt 无关。 我对@a_manthey_67 投了赞成票,因为这是答案。 我并没有表明这篇文章的答案是错误的,我已经指出有一个问题我已经处理过这个话题,所以如果你能做到,那就去做。 :-) 根据那些主题我发现 ubuntu 似乎没有显示 qt icon app.@eyllanesc 【参考方案1】:你可以试试:
def setupUi(self, MainWindow):
[..]
icon = QtGui.QIcon(path_to_image)
MainWindow.setWindowIcon(icon)
【讨论】:
老兄,我正在使用 QMainwindow,所以我得到了'QMainWindow' object has no attribute 'setIcon'
@BrandonBailey
我的错,我从 GUI 中复制了我必须手头的代码,只需将 setIcon 替换为:setWindowIcon
您必须确保 QIcon 中的路径已注册为路径,因此如果您要进行字符串切片,请确保将其包装在 os.path.join() 中
是的,我确定,因为当我运行应用程序时,此图标出现在操作系统工具栏上。但是这张图片没有出现在config server title
旁边。这是 print(scriptDir + os.path.sep +'res/' + 'main.png') 的结果。 /home/groot/PycharmProjects/ConfigServer/res/main.png
@BrandonBailey
似乎一切都是ok
,这是ubuntu
的东西。谢谢老兄,对不起,我浪费了你的时间。@BrandonBailey【参考方案2】:
试试看:
...
MainWindow.setWindowIcon(QtGui.QIcon("D:/_Qt/img/pyqt.jpg"))
...
【讨论】:
我使用了scriptDir = os.path.dirname(os.path.realpath(__file__)) MainWindow.setWindowIcon(QtGui.QIcon(scriptDir + os.path.sep +'res/' + 'main.png'))
,但是config server
标题@S.Nick旁边没有出现这个图标
输出行print(scriptDir + os.path.sep +'res/' + 'main.png')
的结果是什么?
/home/groot/PycharmProjects/ConfigServer/res/main.png
@S.Nick
试试看:MainWindow.setWindowIcon(QtGui.QIcon('./res/' + 'main.png'))
兄弟,您可以看到图标在图片和工具栏的左侧看到,但在标题旁边看不到pasteall.org/pic/show.php?id=a9cbe87eea17b4d911cac8ca5d46f523@S.Nick以上是关于Qt主窗口上的图标不设置[重复]的主要内容,如果未能解决你的问题,请参考以下文章