我的pyQt4應用程序有主對話框,它的內容選項卡控件然後是它的子組件。如何在PyQt4中設置子窗口大小與其父窗口的自動調整大小?
我想要的是,當用戶點擊最大化按鈕或調整大小主窗口,然後按Tab控件的大小以及其零部件的位置應自動更新。
像java swing應用程序中的水平調整大小,垂直可調整大小的屬性。
我的pyQt4應用程序有主對話框,它的內容選項卡控件然後是它的子組件。如何在PyQt4中設置子窗口大小與其父窗口的自動調整大小?
我想要的是,當用戶點擊最大化按鈕或調整大小主窗口,然後按Tab控件的大小以及其零部件的位置應自動更新。
像java swing應用程序中的水平調整大小,垂直可調整大小的屬性。
如果您在Qt Designer中創建了對話框,請確保您已正確設置所有佈局。
要下手,右鍵單擊標籤控件的每個選項卡,然後從菜單中選擇Layout/Layout in a Grid
。工具欄上還有一個按鈕,它可以做同樣的事情(圖標是一個藍色小方格)。
一旦你設置每個選項卡上的佈局,做同樣的事情爲主要形式爲好。
注意,有時更容易選擇和比窗體本身Object Inspector中右鍵單擊該項目。對象檢查器還會在窗體中的每個項目旁邊顯示一個圖標,該圖標已被賦予佈局。
一旦你設置你所有的佈局,使用Form/Preview...
檢查一切正常,你的預期。
謝謝ekhumoro,它的工作原理! – anils 2012-01-22 15:10:22
使用佈局如QHBoxLayout
或QVBoxLayout
。
from PySide.QtCore import *
from PySide.QtGui import *
app = QApplication([])
win = QMainWindow()
frame = QFrame()
win.setCentralWidget(frame)
layout = QHBoxLayout()
frame.setLayout(layout)
layout.addWidget(QPushButton("Expanding Button"))
layout.addWidget(QPushButton("Another Expanding Button"))
win.show()
app.exec_()
這會QHBoxLayout
內添加兩個QPushButton
s到一個QMainWindow
。這意味着他們將彼此相鄰,並且他們將分別填滿他們的一半窗口。 QPushButton
s恰巧只能水平填充(除非您設置了大小策略),但QTabWidget
將填充所有可用空間。
在這裏得到了解決方案! http://stackoverflow.com/questions/3492739/auto-expanding-layout-with-qt-designer – anils 2012-01-22 15:12:37