在主窗口中,我有一个具有自然大小的中央小部件,我想将其初始化为这个大小。但是,我不希望它固定为这个大小;用户应该能够缩小或扩大它。
Qt 文档指出:
注意:顶级小部件的大小限制为 2/3 桌面的高度和宽度。如果出现以下情况,您可以手动调整小部件的大小: 这些界限是不够的。
但是我无法按照规定使用
resize
方法。
下面的最小示例说明了该问题:如果
w
和 h
给出的宽度和高度小于屏幕宽度和高度的 2/3,则窗口将获得预期大小。如果它们更大,窗口的大小会被截断。
#!/usr/bin/env python
from PyQt4 import QtCore, QtGui
import sys
w = 1280; h = 720
app = QtGui.QApplication (sys.argv [1:])
frm = QtGui.QFrame ()
frm.sizeHint = lambda: QtCore.QSize (w, h)
win = QtGui.QMainWindow ()
win.setCentralWidget (frm)
win.show ()
sys.exit (app.exec_ ())
我想这应该适合你
from PyQt4 import QtCore, QtGui
import sys
w = 2280; h = 1520
app = QtGui.QApplication (sys.argv [1:])
frm = QtGui.QFrame ()
#frm.sizeHint = lambda: QtCore.QSize (w, h)
win = QtGui.QMainWindow ()
win.setCentralWidget (frm)
win.resize(w, h)
win.show ()
sys.exit (app.exec_ ())
上面的答案很好,除了
QApplication
、QFrame
和 QMainWindow
不是官方 QtGui
包中
PyQt5
的一部分。他们是
QtWidgets
的一部分:
from PyQt5.QtWidgets import QApplication, QMainWindow, QFrame
w = 900; h = 600
app = QApplication (sys.argv [1:])
frm = QFrame ()
#frm.sizeHint = lambda: QtCore.QSize (w, h)
win = QMainWindow ()
win.setCentralWidget (frm)
win.resize(w, h)
win.show ()
sys.exit (app.exec_ ())