收藏:①极市开发DeepLearning ②Git使用

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运行后生成了一个“窗口”。 

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

 

posted @ 2018-05-25 21:23  WSX_1994  阅读(261)  评论(0)    收藏  举报