2015-08-28 48 views
0

我想添加一個簡單的正方形到網格佈局,但它似乎並沒有工作。PySide框架不會出現在網格佈局

下面是代碼:

self.resultFrame = QFrame() 
self.resultFrame.setGeometry(100, 200, 0, 0) 
self.resultFrame.setStyleSheet("QWidget { background-color: #000 }") 

gridLayout.addWidget(self.resultFrame, 0, 0, 1, 4) 

如果我切換到self.resultFrame,例如QLabelQPushButton,它似乎做工精細,但與QFrame

我會做什麼錯?

+0

我想你已經使用[setFrameStyle](http://doc.qt.io/qt-4.8/qframe.html#setFrameStyle)來定義如何繪製框架。 – Mel

回答

0

因爲我們沒有看到代碼的其餘部分,所以很難弄清楚你可能做錯了什麼,但至少我可以證實這個簡單的例子在網格佈局中繪製了一個黑色的框架和按鈕。

from PySide import QtGui, QtCore 

class MyWindow(QtGui.QWidget): 
    def __init__(self, parent = None): 
     super(MyWindow, self).__init__(parent) 

     self.resultFrame = QtGui.QFrame() 
     self.resultFrame.setGeometry(100, 200, 0, 0) 
     self.resultFrame.setStyleSheet("QFrame { background-color: #000 }") 

     self.myButton = QtGui.QPushButton(self, 'test') 

     gridLayout = QtGui.QGridLayout() 
     gridLayout.addWidget(self.resultFrame, 0, 0) 
     gridLayout.addWidget(self.myButton, 0, 1) 
     self.setLayout(gridLayout) 

     self.resize(400, 400) 
     self.show() 

win = MyWindow() 

它也可能是您在使用網格佈局的addWidget方法和其餘項目時使用跨度的方式。例如,如果我在上面的代碼中使用了gridLayout.addWidget(self.resultFrame,0,0,1,4),則該按鈕將不再處於視圖中!