Pyqt5学习之路【2】第一个程序
写一个简单的程序(不用拖拽实现):
1 __author__ = "WSX" 2 from PyQt5 import QtWidgets #载入PyQt5的QtWidgets模块。它包括实现GUI图形界面所需的window,button等。 3 4 import sys 5 6 app = QtWidgets.QApplication(sys.argv) #创建每一个PyQt5程序都需要的application对象,可以在程序的任何地方通过QtWidgets的qApp属性来访问。 7 #print(QtWidgets.qApp.arguments()) 8 window = QtWidgets.QWidget()#使用没有参数的默认构造函数创建一个窗口对象。QtWidget部件是PyQt5中所有用户界面类的父类。 9 window.setWindowTitle("PyQt5的第一个程序") #设置窗口部件的标题 10 window.resize(300, 70) #设置大小 11 label = QtWidgets.QLabel("Hello World!") #创建QLabel对象 12 btnQuit = QtWidgets.QPushButton("关闭窗口") #创建QPushButton对象 13 vbox = QtWidgets.QVBoxLayout() #创建QVBoxLayout对象(竖容器) 14 vbox.addWidget(label) #添加到容器 15 vbox.addWidget(btnQuit) #添加到容器 16 window.setLayout(vbox) #将vbox容器添加到窗口 17 btnQuit.clicked.connect(app.quit) #信号槽机制 18 window.show() 19 sys.exit(app.exec_())
效果:

(拖拽实现):
1 __author__ = "WSX" 2 # -*- coding: utf-8 -*- 3 4 # Form implementation generated from reading ui file '第一个窗口(拖拽).ui' 5 # 6 # Created by: PyQt5 UI code generator 5.6 7 # 8 # WARNING! All changes made in this file will be lost! 9 10 from PyQt5 import QtCore, QtGui, QtWidgets 11 import sys 12 class Ui_MainWindow(object): 13 def setupUi(self, MainWindow): 14 MainWindow.setObjectName("MainWindow") 15 MainWindow.resize(369, 204) 16 self.centralwidget = QtWidgets.QWidget(MainWindow) 17 self.centralwidget.setObjectName("centralwidget") 18 self.verticalLayoutWidget = QtWidgets.QWidget(self.centralwidget) 19 self.verticalLayoutWidget.setGeometry(QtCore.QRect(0, 0, 361, 151)) 20 self.verticalLayoutWidget.setObjectName("verticalLayoutWidget") 21 self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget) 22 self.verticalLayout.setContentsMargins(0, 0, 0, 0) 23 self.verticalLayout.setObjectName("verticalLayout") 24 self.label = QtWidgets.QLabel(self.verticalLayoutWidget) 25 self.label.setObjectName("label") 26 self.verticalLayout.addWidget(self.label) 27 self.pushButton = QtWidgets.QPushButton(self.verticalLayoutWidget) 28 self.pushButton.setObjectName("pushButton") 29 self.verticalLayout.addWidget(self.pushButton) 30 MainWindow.setCentralWidget(self.centralwidget) 31 self.menubar = QtWidgets.QMenuBar(MainWindow) 32 self.menubar.setGeometry(QtCore.QRect(0, 0, 369, 23)) 33 self.menubar.setObjectName("menubar") 34 MainWindow.setMenuBar(self.menubar) 35 self.statusbar = QtWidgets.QStatusBar(MainWindow) 36 self.statusbar.setObjectName("statusbar") 37 MainWindow.setStatusBar(self.statusbar) 38 39 self.retranslateUi(MainWindow) 40 self.pushButton.clicked.connect(MainWindow.close) 41 QtCore.QMetaObject.connectSlotsByName(MainWindow) 42 43 def retranslateUi(self, MainWindow): 44 _translate = QtCore.QCoreApplication.translate 45 MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) 46 self.label.setText(_translate("MainWindow", "Hello World")) 47 self.pushButton.setText(_translate("MainWindow", "关闭窗口")) 48 49 if __name__ =="__main__": 50 app = QtWidgets.QApplication(sys.argv) 51 mainWindow = QtWidgets.QMainWindow() 52 ui = Ui_MainWindow() 53 ui.setupUi(mainWindow) 54 mainWindow.show() 55 sys.exit(app.exec_())
结果:

细心的小伙伴会发现,两个程序生成的窗口方法不同一个是QMainWindow()另一个是QWidget()
区别:详细信息
区别在于:QMainWindow中在setUi时自动为用户创建了一个菜单栏、工具栏、中心窗口和状态栏。而QWidget是没有这几点的。
QWidget运行后就只有一个“页面”,而QMainWindow运行后生成了一个“窗口”。

从外到内依次是菜单栏、状态栏、工具栏、停靠窗口、中心窗口。

浙公网安备 33010602011771号