PySide Frame不会出现在Grid Layout上

时间:2015-08-28 13:03:20

标签: python pyside qgridlayout qframe

我试图在网格布局中添加一个简单的方块,但它似乎无法正常工作。

以下是代码:

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

我可能做错了什么?

1 个答案:

答案 0 :(得分: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),则该按钮将不再显示在其中!