[英]PyQt4: Difference between QWidget and QMainWindow
在阅读PyQt4教程时,有时示例使用QtGui.QMainWindow
,有时它使用QtGui.QWidget
。
问题:你怎么知道何时使用哪个?
import sys
from PyQt4 import QtGui
class Example(QtGui.QMainWindow):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
self.statusBar().showMessage('Ready')
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Statusbar')
self.show()
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
另一个代码示例:
import sys
from PyQt4 import QtGui, QtCore
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
cb = QtGui.QCheckBox('Show title', self)
cb.move(20, 20)
cb.toggle()
cb.stateChanged.connect(self.changeTitle)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('QtGui.QCheckBox')
self.show()
def changeTitle(self, state):
if state == QtCore.Qt.Checked:
self.setWindowTitle('QtGui.QCheckBox')
else:
self.setWindowTitle('')
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
QMainWindow
是一个理解像GUI一样的GUI元素的类
QWidget
只是一个原始的小部件。
如果要为项目设置主窗口,请使用QMainWindow
。
如果要创建对话框(模式对话框),请使用QWidget
,或者更优选使用QDialog
。
如果您不打算使用菜单栏,工具栏或停靠小部件,它们对您来说都是一样的。 如果您将使用其中之一,请使用QMainWindow
。 并且不要忘记将setCentralWidget
调用到主布局小部件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.