我试图在我的程序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)")
答案 0 :(得分:3)
您创建了一个框架但从未将其添加到任何布局,因此它不会显示。
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
的目的:
QFrame类是可以有框架的小部件的基类 QFrame类也可以直接用于创建简单 没有任何内容的占位符框架。