如何在 PyQt 中设置小部件的初始大小大于屏幕的 2/3

Rol*_*Kau 3 python qt qt4 pyqt pyqt4

在主窗口中,我有一个具有自然大小的中央小部件,我想将其初始化为这个大小。但是,我不希望它固定到这个大小;用户应该能够缩小或扩大它。

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_ ())
Run Code Online (Sandbox Code Playgroud)

Ach*_*yan 9

这应该为你做我认为

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_ ())
Run Code Online (Sandbox Code Playgroud)


Whi*_*clo 5

上面的答案很好,除了QApplication,QFrameQMainWindow不是官方PyQt5一部分。它们是QtWidgets的一部分。QtGui

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_ ())
Run Code Online (Sandbox Code Playgroud)