我有一個類似QPushButtons的網格視圖。按鈕內容不是靜態的,所以列大小會動態擴展。出於美學原因,我希望每個色譜柱具有相同的色譜柱大小。連接QPushButton的大小
現在我在顯示小部件之後使用adjust_sizes函數,因爲我注意到如果在顯示小部件之前調用它,沒有任何更改。但我的解決方案對我來說似乎很難看。有更好的方法嗎?
我的功能:
def adjust_sizes(self):
max_width=0
for i in self.buttons:
if i.geometry().width() > max_width :
max_width=i.geometry().width()
for i in self.buttons: i.setMinimumSize(max_width,0)
而這就是我如何使用它:
g=launcher()
g.show()
g.adjust_sizes()
是否有這樣做的更好的辦法?
編輯: 至於澄清這裏是理想的截圖(請看Raceyman的回答):
所需的外觀:
這裏是我所得到的:
我的系統:
Arch Linux的x86_64的,Python的3.2或2.7.1,4.8.4 PyQt的,QT 4.7.3
你正在使用什麼佈局類? – Mat 2011-05-17 17:20:26
@Mat,QGridLayout。 – utdemir 2011-05-17 17:22:58
對不起,我認爲有人總是有所有的列寬度相同,但事實並非如此。你可以通過設置網格的'setColumnMinimumWidth'而不是每個按鈕來使你的代碼更好一點,但這並沒有什麼收穫。 – Mat 2011-05-17 18:02:21