PyQt4 QInputDialog和QMessageBox窗口标志

时间:2016-07-22 19:11:19

标签: python pyqt qdialog

我正在使用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?没有任何帮助。

任何新的建议都会受到赞赏。

0 个答案:

没有答案