我正在使用python 2.7和PyQt4制作一个gui;我的经历非常有限。我想将QInputDialog和QMessageBox对象用于我需要的一些对话框。我不想拥有"?"在我使用的任何对话框中。对于类似问题How can I hide/delete the "?" help button on the "title bar" of a Qt Dialog?
,有一个关于如何执行此操作的答案该解决方案适用于标准QDialog。它相当于:
message = QtGui.QDialog(self, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
这摆脱了"?"剩下的就剩下了。我与其他班级没有相同的结果。这就是我为QInput对话框尝试过的:
nameDialog = QtGui.QInputDialog(self, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
nameDialog = QtGui.QInputDialog(self, flags = QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
nameDialog = QtGui.QInputDialog(self, flags = QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint | ~QtCore.Qt.WindowContextHelpButtonHint)
nameDialog = QtGui.QInputDialog(self, flags = QtCore.Qt.WindowTitleHint | ~QtCore.Qt.WindowContextHelpButtonHint)
或
nameDialog = QtGui.QInputDialog(self)
nameDialog.setWindowFlags(QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
nameDialog.setWindowFlags(QtCore.Qt.WindowContextHelpButtonHint)
nameDialog.setWindowFlags(nameDialog.windowFlags() | ~QtCore.Qt.WindowContextHelpButtonHint)
newUser = nameDialog.getText(self, 'User change', 'Enter name:')
这些都没有产生任何结果。无论我使用哪一行,都会发生同样的事情:对话框出现了"?"就像没有包含第二个参数时一样。
当我尝试删除"?"时,QMessageBox给了我其他问题。这就是我试过的:
mkDialog = QtGui.QMessageBox(self, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
和
mkDialog = QtGui.QMessageBox(self)
mkDialog.setWindowFlags(QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
第一种方法给我一个错误"参数1有意想不到的类型MainWin" (MainWin是父类)。第二种方法显示完全没有标题栏的对话框。
之前曾问过这个问题How to remove help button on QInputDialog,但它被标记为我发布的第一个问题的副本。相同的解决方案不适用于QInputDialog或QMessageBox作为QDialog,因此How can I hide/delete the "?" help button on the "title bar" of a Qt Dialog?没有任何帮助。
任何新的建议都会受到赞赏。