2015-08-28 47 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),则该按钮将不再处于视图中!