我正在尝试对一个消息框进行编码,该消息框会弹出并说出一些内容,并用一个按钮将其关闭,但是由于该框中只有少量文本,因此其左侧的图标/图像很大并且看上去很糟糕。我想知道如何删除它。我也无法制作自定义消息框。教程说,这是制作自定义消息框的方法:
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的选项的任何其他信息。因此,如果有人也可以告诉我一些适当的文档在哪里,那将阻止我在这里问太多问题
与其直接使用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
通常只是默默地崩溃,但使您一无所知。大多数情况下,我使用的是Shims Qt.py
https://pypi.python.org/pypi/Qt.py/0.6.9或qtpy
https://pypi.python.org/pypi/QtPy,以便能够从切换PyQt
到PySide
开启苍蝇。它还允许轻松地在Qt4
和Qt5
绑定之间切换。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句