PyQt编程快速上手
上QQ阅读APP看书,第一时间看更新

1.2.1 程序入口

通过示例代码1-1我们能创建出一个非常简单的PyQt窗口,而这段代码就是常见的PyQt程序入口。

示例代码1-1

import sys
from PyQt5.QtWidgets import *
 
if __name__ == '__main__':
    app = QApplication([])         # 1
    label = QLabel('Hello, PyQt!') # 2
    label.show()                   # 3
    sys.exit(app.exec())           # 4

运行结果如图1-5所示。

图1-5 简单的PyQt窗口

代码解释:

#1 通过app = QApplication([])语句实例化一个QApplication对象,该对象的作用是接收一个列表类型的值,其实就是用来接收命令行参数的。由于该程序不会与命令行“打交道”,所以直接传入空列表[]即可。如果程序需要接收命令行参数,则可以传入sys.argv。

#2 通过label = QLabel('Hello, PyQt!')语句实例化一个QLabel控件,我们通常用它来显示文本或图片。在这行代码中,我们用它来显示文本。在实例化QLabel控件时,可以直接传入文本,也可以先实例化,再调用setText()方法来设置,代码如下所示。

label= QLabel()
label.setText('Hello, PyQt!')

#3 因为控件默认都是隐藏的,所以要调用show()方法将其显示出来。

#4 通过app.exec()可以让PyQt程序运行起来,而当用户正常关闭窗口时,app.exec()会返回数值0,将其传给sys.exit(),从而让Python解释器正常退出。

在本小节中,如果碰到不理解的地方完全没有关系,先记住可以理解的部分,往下慢慢看,懂的就会越来越多了。比如先记住QLabel控件的用法,知道这个控件是干什么的,以及如何使用它的setText()方法等。

在PyQt中,一个控件可以看作一个窗口。

读者可能发现app对象还有exec_()方法,那是因为在Python 2中exec是关键字,所以为了不引起冲突,PyQt官方起初就编写了带下画线的exec_()。不过exec在Python 3中已不再是关键字,所以直接调用exec()不会有任何问题。