在PYQT中添加Qframe并设置siz

2024-05-16 20:10:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在我的程序GUI中间添加一个QFrame。我尝试了多行代码,但仍然无法显示:(这里是我尝试的一个简单实现。有什么帮助吗?

class gameWindow(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self, parent)

        self.initUI()

    def initUI(self):
        self.setGeometry(300,300,1280,800)
        self.setWindowTitle("Intel")
        self.setWindowIcon(QtGui.QIcon("Intel.png"))
        #self.setStyleSheet("background-color: rgb(255, 255, 255);\n")
                           #"border:1px solid rgb(0, 131, 195);")

        self.centralwidget = QtGui.QWidget(self)
        self.frame = QtGui.QFrame(self.centralwidget)
        self.frame.resize(300,300)
        self.frame.setStyleSheet("background-color: rgb(200, 255, 255)")

Tags: selfinitdefrgbframecolorparentbackground
1条回答
网友
1楼 · 发布于 2024-05-16 20:10:12

您创建了一个框架,但从未将其添加到任何布局中,因此它不会显示。

QMainWindow带有预定义的布局,其中包含菜单栏、工具栏、状态栏等(Qt Doc)。 要显示您可以只做self.setCentralWidget(self.frame)的框架,它将被插入主窗口布局中。

但很有可能你并不需要这些,只需要一个QWidget

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

        self.setGeometry(300,300,1280,800)

        self.frame = QtGui.QFrame()
        self.frame.resize(300,300)
        self.frame.setStyleSheet("background-color: rgb(200, 255, 255)")

        layout=QtGui.QVBoxLayout()
        layout.addWidget(self.frame)
        self.setLayout(layout)

最后,来自Qt Doc关于QFrame的提醒:

The QFrame class is the base class of widgets that can have a frame.
The QFrame class can also be used directly for creating simple placeholder frames without any contents.

相关问题 更多 >