我正在尝试编写一个消息框,它只是弹出并说出一些内容并且只有一个按钮来关闭它,但是因为我在框中只有少量文本,所以它左边的图标/图像是巨大的看起来很糟糕我想知道如何删除它。我也无法制作自定义消息框。教程说这就是你制作自定义消息框的方式:
box = QMessageBox()
box.setText('text')
box.addButton(QPushButton('Close', self))
box.exec_()
然而,这只是关闭我的程序并返回1.我当前的代码使用QMessageBox()的about方法:
box = QMessageBox().about(self, 'About', 'This is a test Program')
然而,在文本窗口中有一个大图标,我似乎无法对框进行任何其他操作,因为它只是停止程序并再次返回1
我迫切需要一些不错的PyQt文档。除非是在C ++中,否则我似乎无法找到很多文档。例如,我似乎无法找到除问题和QmessageBox之外的任何选项信息。因此,如果有人也可以告诉我某些正确的文档存在哪里,这将阻止我在这里提出太多问题
答案 0 :(得分:1)
而不是PyQt文档,最好直接使用Qt文档。您只需将语言思维从Python切换到C ++,然后再返回。这并不困难。 :)见例如http://doc.qt.io/qt-4.8/qmessagebox.html#addButton或http://doc.qt.io/qt-4.8/qmessagebox.html#about我认为这是非常详细的文档,大多数其他框架都无法比拟。
请注意addButton()
有三个覆盖。从文档中看来,您需要将两个参数传递给box.addButton(QPushButton('Close', self), QMessageBox.RejectRole)
(您忘记了角色!)或更好,您使用使用标准按钮的覆盖,然后您只传递一个参数:box.addButton(QMessageBox.Close)
还有一个提示:我发现使用PySide
调试程序比PyQt
更容易,因为与PyQt
不同,PySide
捕获异常,打印出来控制台并继续运行。虽然PyQt
通常只是默默地崩溃,让你无能为力。大多数情况下,我使用垫片Qt.py
https://pypi.python.org/pypi/Qt.py/0.6.9或qtpy
https://pypi.python.org/pypi/QtPy即可快速从PyQt
切换到PySide
。它还允许轻松切换Qt4
和Qt5
绑定。