PyQt5拥有严谨的代码结构和类结构,我们在后期的学习中也会遵循这个规律,这样学习起来不仅代码规范,也能更高效的复用代码资源。这节课我们通过两段简单的代码带你了解PyQt5的玩法,首先第一段代码如下:
from PyQt5.Qt import *
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("软件名称")
window.resize(600,500)
btn = QPushButton(window)
btn.setText("按钮")
btn.resize(120, 30)
btn.move(100, 100)
btn.setStyleSheet('background-color:green;font-size:16px;')
label =QLabel(window)
label.setText('标签')
label.setStyleSheet('background-color:green;font-size:16px;')
# label.show()
window.show()
sys.exit(app.exec_())
上面代码中第一行和第二行是引用两个包,第一个是PyQt5的所有控件,在以后的开发中我们不能这样引用整体包,这样会使软件变得很臃肿,不利于软件的快速运行,但是在学习过程中我们不了解应该使用哪些类,所以暂时直接引用所有类。
第四行是创建应用程序,我们的软件就是一个桌面应用程序,所以先要通过QApplication来实例化。
第6-8行创建一个窗口,视频课程中也有详细说明窗口的范围和样式,这里设置了窗口的title和尺寸。
然后我们又在窗口中放入了两个控件,分别是一个按钮和一个标签,这两个控件我们在后面的学习中还要详细讲解他的使用方法,这里我们给了相应的属性样式。
到19行我们看到有个show函数,这是让窗口展示的方法,属于非模态方法,后面我们在对话框控件中会学习模态和非模态的用法。
最后一段代码可以简单的理解为组织窗口闪退的,因为软件界面是电脑绘制出来的,如果没有这段代码,电脑绘制一次窗口就会关闭,而且不会反回任何错误。
下面我们再来看一段代码,和上面的功能是一样的,只是使用了面向对象的思维来封装一下,为我们下节课的模板设置做个准备。
from PyQt5.Qt import *
import sys
class Window(QWidget):
def __init__(self):
super().__init__() # 调用父类QWidget中的init方法
self.setWindowTitle("软件名称")
self.resize(600,500)
self.func_list()
def func_list(self):
self.func()
def func(self):
btn = QPushButton(self)
btn.setText("软件内容")
btn.resize(120,30)
btn.move(100,100)
btn.setStyleSheet('background-color:green;font-size:20px;')
if __name__ == '__main__':
app = QApplication(sys.argv) # 创建一个应用程序对象
# sys.argv可以接收用户命令行启动时所输入的参数,根据参数执行不同程序
# qApp 为全局对象
print(sys.argv)
print(app.arguments())
print(qApp.arguments())
# 以上三个输出结果是一样的
window = Window()
window.show()
sys.exit(app.exec_()) # 0是正常退出
# app.exec_() 进行循环
# sys.exit() 检测退出原因
大家先看看上面代码的注释,我们下节课会详细讲解一下,能看懂是最好了。