pyqt5&python Gui 入门教程(1) 第一个窗口(1)
第一个窗口和代码详细注释:
from PyQt5 import QtWidgets
#从 PyQt 库导入 QtWidget 通用窗口类
class mywindow(QtWidgets.QWidget):
#自己建一个 mywindows 类,以 class 开头,mywindows 是自己的类名,
#(QtWidgets.QWidget)是继承 QtWidgets.QWidget 类方法,
# 定义类或函数不要忘记':'符号,判断语句也必须以':'结尾!
def __init__(self):
#def 是定义函数(类方法)了,同样第二个__init__是函数名
# (self)是 pyqt 类方法必须要有的,代表自己,相当于 java,c++中的 this
#其实__init__是析构函数,也就是类被创建后就会预先加载的项目
super(mywindow,self).__init__()
#这里我们要重载一下 mywindows 同时也包含了 QtWidgets.QWidget 的预加载项
import sys
app = QtWidgets.QApplication(sys.argv)
#pyqt 窗口必须在 QApplication 方法中使用,
#要不然会报错 QWidget: Must construct a QApplication before a QWidget
windows = mywindow()
# 生成过一个实例(对象), windows 是实例(对象)的名字,可以随便起!
# mywindows()是我们上面自定义的类
windows.show()
#有了实例,就得让他显示这里的 show()是 QWidget 的方法,用来显示窗口
的!
sys.exit(app.exec_())
#启动事件循环
pyqt5&python Gui 入门教程(2) 第一个窗口(2)
上图是第一篇教程,下面的显示效果都一样,我们来看看有什么不同
1、类的名字、实例的名字都换了,
2、多了一个 if __name__ == "__main__": 以及下面的代码缩进了,层次改变
了
1、我们把结尾的 5 句代码,单独建立了一个函数
2、然后直接调用函数
3、注意两个 def 的缩进,第一个 def 缩进了代表是在 class 里面,第二个和
class 平齐,则是在外面。
可以看到显示效果是一样,我们却有很多办法去实现。
知识点:
1、if __name__ == "__main__": 是代表如果这个文件是主程序这运
行下面的代码,如果是被别的程序文件调用的话,则运行下面的代码。
2、__init__ 方法在类的一个对象被建立时,马上运行。这个方法可
以用来对你的对象做一些你希望的 初始化 。注意,这个名称的开始和结尾
都是双下划线。
3、生成实例(对象)必须以类名(),别忘记了()
4、类中的函数(方法)必须有 self,是代表属于这个实例(对象)
本身持有的,而外部定义的函数则不需要。
整个流程;
先导入 PyQt5 中的 QtWidgets 通用窗口库,通过继承
QtWidgets.QWidget 来定义自己的窗口。然后生成一个对象(实例化),再调
用 QWidget 的 show()方法来显示这个窗口。
pyqt5&python Gui 入门教程(3) 第一个窗口(3)
frist.py 文件
second.py 文件
这是两个文件,第一个文件和之前一样我们只录入的上半截,第二个文件我们
保留了下半截,
也就是将一个文件分成两个文件,从 second.py 文件调用 frist.py 来显示窗口
的目的。
注意 second.py 文件加入了一句 from frist import fristwindows 即导入
first.py 的 fristwindows 类
是不是很熟悉,将自己的文件作为库导入进来,然后调用即可!
虽然都是显示窗口,我们这里已经学习了很多办法来显示它。代码区别也是很
大,关键是灵活运用。
知识点:
1、库,这个例子是将我们自己的文件作为库导入,也可以称为自定义库。
注意不用.py 结尾,pyqt 会自动识别。
2、frist.py 的 firstwindows 的代码就是显示一个窗口用的,但是没有将它实
例化,并在 QApplication 中运行。
所以运行 frist.py 是不会显示任何窗口的。
我们将显示 firstwindows 的方法写在了第二个文件中,达到逻辑与界
面分离的效果。
3、QApplication 相当于 main 函数,也就是整个程序(有很多文件)的主入口
函数。
对于一个 Gui 程序必须至少有一个这样的一个实例来让程序运行。
4、最后一句是调用 sys 库的 exit 退出方法,退出条件(参数)是
app.exec_()也就是整个窗口关闭。
其实入门没什么难度,只是对一些基本概念的掌握和了解,本人也是
菜鸟,写的不是很好,只是希望能和更多有兴趣爱好的新手一起交流学习。
PyQt5&python Gui 入门教程(4) 初探 Qt
Designer 设计师
网上很多教程都是代码,对于新手看起来就很头疼,pyqt 同样为我们提供了 Qt
designer 来设计窗口界面,
用起来也非常方便,对于新手我们应该善用它,虽然做出来的界面不那么华
丽,但至少可以做出个像样的窗口来。
打开 PyQt5 的 Qt Designer,会自动弹出新建窗体对话框,
对于我们最常用的就是 Widget 通用窗口类,还有个 MainWindows 顾名思义主窗
口。
PyQt5 的 Widget 被分离出来,似乎用来替代 Dialog,并将 Widget 放入了
QtWidget 模块(库)中,PyQt4 是 QtGUI。