在主窗口中,我有一個具有自然大小的中央控件,我想將它初始化爲這個大小。但是,我不希望它被固定到這個尺寸;用戶應該能夠縮小或擴大它。如何在PyQt中設置大於屏幕2/3rd的控件的初始大小
的Qt documentation指出:
注:頂層窗口部件的大小被限制到 桌面的高度和寬度的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_())
對C++庫的猴子修補方法很少有效。您是否嘗試過使用子類來覆蓋'sizeHint'方法? –
@three_pineapples'sizeHint'已成功添加到對象;如果寬度和高度小於屏幕的2/3,則小部件將獲得正確的大小。 (該限制在Qt中進行了硬編碼) – RolKau