使用以下方式创建的对话框:
class GUI(QtGui.QMainWindow):
def __init__(self):
super(GUI, self).__init__()
global dialog
dialog = QtGui.QDialog()
myGui = GUI()
缺少最小化窗口按钮(OSX)。它在Windows中。我是否必须设置一些标志来显示这个丢失的控制器?请指教,提前致谢!
我没有尝试使用QtGui.QDialog()解决无最小化按钮问题。但似乎我部分地知道如何使用QtGui.QMainWindow获取该缺失按钮。 以下是说明基本语法的最简单代码:
from PyQt4 import QtCore, QtGui
app = QtGui.QApplication(sys.argv)
class MainWindow(QtGui.QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
myQWidget = QtGui.QWidget()
myBoxLayout = QtGui.QVBoxLayout()
myLineEdit = QtGui.QLineEdit("myLineEdit")
myBoxLayout.addWidget(myLineEdit)
myQWidget.setLayout(myBoxLayout)
self.setCentralWidget(myQWidget)
window = MainWindow()
window.show()
window.resize(480,320)
sys.exit(app.exec_())
QtGui.QMainWindow背后的'关键''概念'是我们首先声明QWidget()
myQWidget = QtGui.QWidget()
我们为其分配'主'布局:
myQWidget.setLayout(myBoxLayout)
最后一步不要忘记是使用以下方法将此QWidget()分配给对话框:
self.setCentralWidget(myQWidget)
其中'self'是QtGui.QMainWindow的实例子类。
答案 0 :(得分:7)
我无法自己测试,但您可以尝试设置这些window flags:
dialog.setWindowFlags(dialog.windowFlags() |
QtCore.Qt.WindowMinimizeButtonHint |
QtCore.Qt.WindowSystemMenuHint)
(可能没有WindowSystemMenuHint
标志。)
答案 1 :(得分:3)
QtGui.QDialog
在任何平台上都没有提供最小化按钮,但QtGui.QMainWindow
确实在每个平台上提供(Windows,Linux和OSX)。您正在创建QDialog
对象,同时创建GUI
的对象,该对象是QMainWindow
的子类。如果你写myGui.show()
,窗口将为你提供所有三个按钮(最小化,最大化/恢复和关闭)。但是在dialog.show()
的情况下,你不会有两个(最小化和最大化/恢复)。这是Qt的限制。