2012-12-18 50 views
4

開始我已經創造了Qt設計的UI,並將其轉換爲蟒:如何添加小部件的GridLayout從左上角

enter image description here

在空白區域我添加了一個scrollarea和網格佈局,以對齊我的按鈕。

每次我按下「CreatePose」按鈕,我需要添加一個帶有圖標的按鈕到gridlayout,從左上角開始。現在它將它添加到網格佈局的中心。

self.ui.PoseBtn_GridLayout.setColumnMinimumWidth(4,4) 
self.button = QtGui.QPushButton('') 
self.button.setIcon(self._icon) 
self.button.setIconSize(QtCore.QSize(128, 128)) 
self.button.setMinimumSize(QtCore.QSize(128, 128)) 
self.button.setMaximumSize(QtCore.QSize(128, 128)) 
self.ui.PoseBtn_GridLayout.addWidget(self.button) 

如何解決此問題?

+1

這是什麼'QSpacerItem's是,它佔據的中心,因爲它是在你的佈局 – 2012-12-18 18:25:35

+0

結帳的唯一部件[我的回答(http://stackoverflow.com/a/13953945/1006989) ,我修改它顯示'QPushButton'在網格佈局沒有重疊 – 2012-12-20 16:15:20

回答

0

看看是否更換你貼有此代碼對你有用:

self.ui.PoseBtn_GridLayout.setColumnMinimumWidth(4,4) 

spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) 
self.ui.PoseBtn_GridLayout.addItem(spacerItem, 1, 1, 1, 1) 

spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) 
self.ui.PoseBtn_GridLayout.addItem(spacerItem1, 1, 0, 1, 1) 

self.button = QtGui.QPushButton('') 
self.button.setIcon(self._icon) 
self.button.setIconSize(QtCore.QSize(128, 128)) 
self.button.setMinimumSize(QtCore.QSize(128, 128)) 
self.button.setMaximumSize(QtCore.QSize(128, 128)) 
self.ui.PoseBtn_GridLayout.addWidget(self.button, 0, 0, 1, 1) 

編輯

這是怎麼了你應該展示你的小部件,以獲得預期的結果,檢出對象檢查,基本上你需要一個QWidget與網格佈局內另一個QWidget與網格佈局和2 QSpaceItem的:

Qt Designer Screenshot

+0

雅它的工作,但如果我通過單擊createpose btn創建另一個按鈕..然後我的第二個重疊第一btn – rishis3d

+0

真棒雅各布..得到它..它的工作現在..謝謝 – rishis3d

+0

如何刪除我的網格窗口小部件中的所有窗口小部件,並重新創建所有窗口小部件的順序..如刷新我的按鈕,如果我再添加一個它.. – rishis3d

相關問題