2012-01-06 104 views
1

我的pyQt4應用程序有主對話框,它的內容選項卡控件然後是它的子組件。如何在PyQt4中設置子窗口大小與其父窗口的自動調整大小?

我想要的是,當用戶點擊最大化按鈕或調整大小主窗口,然後按Tab控件的大小以及其零部件的位置應自動更新。

像java swing應用程序中的水平調整大小,垂直可調整大小的屬性。

+0

在這裏得到了解決方案! http://stackoverflow.com/questions/3492739/auto-expanding-layout-with-qt-designer – anils 2012-01-22 15:12:37

回答

2

如果您在Qt Designer中創建了對話框,請確保您已正確設置所有佈局。

要下手,右鍵單擊標籤控件的每個選項卡,然後從菜單中選擇Layout/Layout in a Grid。工具欄上還有一個按鈕,它可以做同樣的事情(圖標是一個藍色小方格)。

一旦你設置每個選項卡上的佈局,做同樣的事情爲主要形式爲好。

注意,有時更容易選擇和比窗體本身Object Inspector中右鍵單擊該項目。對象檢查器還會在窗體中的每個項目旁邊顯示一個圖標,該圖標已被賦予佈局。

一旦你設置你所有的佈局,使用Form/Preview...檢查一切正常,你的預期。

+0

謝謝ekhumoro,它的工作原理! – anils 2012-01-22 15:10:22

1

使用佈局如QHBoxLayoutQVBoxLayout

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將填充所有可用空間。