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

问题描述 投票:0回答:2

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

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_ ())
python qt pyqt qt4 pyqt4
2个回答
10
投票

我想这应该适合你

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_ ())

6
投票

上面的答案很好,除了

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_ ())
    
© www.soinside.com 2019 - 2024. All rights reserved.