alp*_*ric 2 python pyqt qtcore
创建一个对话框:
class GUI(QtGui.QMainWindow):
def __init__(self):
super(GUI, self).__init__()
global dialog
dialog = QtGui.QDialog()
myGui = GUI()
Run Code Online (Sandbox Code Playgroud)
缺少最小化窗口按钮(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_())
Run Code Online (Sandbox Code Playgroud)
QtGui.QMainWindow背后的'关键''概念'是我们首先声明QWidget()
myQWidget = QtGui.QWidget()
Run Code Online (Sandbox Code Playgroud)
我们为其分配了一个'主'布局:
myQWidget.setLayout(myBoxLayout)
Run Code Online (Sandbox Code Playgroud)
不要忘记的最后一步是使用以下命令将此QWidget()分配给对话框本身:
self.setCentralWidget(myQWidget)
Run Code Online (Sandbox Code Playgroud)
其中'self'是QtGui.QMainWindow的实例子类.
我自己无法测试,但您可以尝试设置这些窗口标志:
dialog.setWindowFlags(dialog.windowFlags() |
QtCore.Qt.WindowMinimizeButtonHint |
QtCore.Qt.WindowSystemMenuHint)
Run Code Online (Sandbox Code Playgroud)
(WindowSystemMenuHint可能没有必要标志).
QtGui.QDialog不在任何平台上提供最小化按钮,但QtGui.QMainWindow在每个平台(Windows、Linux 和 OSX)上提供。您正在创建一个QDialog对象,同时创建一个GUI属于 的子类的对象QMainWindow。如果您编写,myGui.show()窗口将为您提供所有三个按钮(最小化、最大化/恢复和关闭)。但在 的情况下dialog.show(),您将不会有其中两个(最小化和最大化/恢复)。这是Qt的限制。
| 归档时间: |
|
| 查看次数: |
2881 次 |
| 最近记录: |