PySide 框架没有出现在网格布局上

PySide Frame doesn't appear on Grid Layout

我正在尝试向网格布局添加一个简单的正方形,但它似乎不起作用。

代码如下:

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.

我可能做错了什么?

由于我们看不到其余代码,因此很难确定您可能做错了什么,但至少我可以确认这个简单的示例在网格布局中绘制了一个黑色框架和按钮。

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 方法时使用 span 的方式。例如,如果我在上面的代码中使用 gridLayout.addWidget(self.resultFrame, 0, 0, 1 ,4) 按钮将不再可见!