上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()不会有任何问题。