延续上节,PyQt5的程序基本结构,主要涉及控件部分
1.一个空白控件的设置,一个空白窗口
# 0 导入需要的包和模块
from PyQt5.Qt import * # 主要包含了常用的一些类,汇总到了一块
import sys # 内置模块
# 代码执行的方式为两种,一种为右击执行,一种为命令行执行(python 代码名称)
# args = sys.argv # 命令行执行时:接受命令行传递的参数
# print(args)
# 1.创建一个应用程序对象
app = QApplication(sys.argv)
# 2.控件的操作
# 创建控件,设置控件的大小,位置,样式信息,事件,信号的处理
# 2.1 创建控件
# 但我们创建好一个控件之后,如果说,这个控件没有父控件,则把它当做顶层控件(也叫窗口)
# 系统会自动的给窗口添加一些装饰(标题栏),窗口控件具备一些特性,包括:
# 设置标题,图标
# 以下就是一个窗口控件
window = QWidget()
window.show()
# 3.应用程序的执行,进入到消息循环 app.exec_() # 整个程序进如无线循环,如果执行完不循环的话,界面就会一闪而过,循环就可以保持界面一直存在 # 检测整个程序所接受到的用户的交互信息 # app.exec_() 执行的一些错误信息报给 sys.exit() sys.exit(app.exec_())
结果:
2. 设置控件信息,并再窗口上添加一个标签控件。此时,窗口控件window就是一个容器,可以承载其他控件
# 0 导入需要的包和模块
from PyQt5.Qt import * # 主要包含了常用的一些类,汇总到了一块
import sys # 内置模块
# 代码执行的方式为两种,一种为右击执行,一种为命令行执行(python 代码名称)
# args = sys.argv # 命令行执行时:接受命令行传递的参数
# print(args)
# 1.创建一个应用程序对象
app = QApplication(sys.argv)
# 2.控件的操作
# 创建控件,设置控件的大小,位置,样式信息,事件,信号的处理
# 2.1 创建控件
# 但我们创建好一个控件之后,如果说,这个控件没有父控件,则把它当做顶层控件(也叫窗口)
# 系统会自动的给窗口添加一些装饰(标题栏),窗口控件具备一些特性,包括:
# 设置标题,图标
window = QWidget()
# 创建按钮
# window = QPushButton()
# 创建标签
# window = QLabel()
# 2.2 设置控件
# 控件创建好后,可以设置空间的大小等
window.setWindowTitle("社会我顺哥,人狠话不多")
window.resize(500, 500)
window.move(400,200)
# 控件也可以作为一个容器(承载其他的控件)
# 将window这个窗口添加一个label控件,window相当于容器
label = QLabel(window)
label.setText("Hello, Sz")
label.move(200,200)
#
window.show()
#
#
# 3.应用程序的执行,进入到消息循环 app.exec_()
# 整个程序进如无线循环,如果执行完不循环的话,界面就会一闪而过,循环就可以保持界面一直存在
# 检测整个程序所接受到的用户的交互信息
# app.exec_() 执行的一些错误信息报给 sys.exit()
sys.exit(app.exec_())
结果:
如果想要label这个控件单独显示;
将上述代码中的代码修改为:
label = QLabel()
label.setText("Hello, Sz")
label.move(200,200)
label.show()
其余部分不做修改。这里不将window作为父控件后,同样要符合以下定义
但我们创建好一个控件之后,如果说,这个控件没有父控件,则把它当做顶层控件(也叫窗口) # 系统会自动的给窗口添加一些装饰(标题栏),窗口控件具备一些特性,包括: # 设置标题,图标
意思就是说label也是一个窗口控件了,它就是一个独立的窗口,要显示出来,就必须添加show()
以下是最终的一个总结,很多重要内容都在注释里
# 0 导入需要的包和模块
from PyQt5.Qt import * # 主要包含了常用的一些类,汇总到了一块
import sys # 内置模块
# 代码执行的方式为两种,一种为右击执行,一种为命令行执行(python 代码名称)
# args = sys.argv # 命令行执行时:接受命令行传递的参数
# print(args)
# 1.创建一个应用程序对象
app = QApplication(sys.argv)
# 2.控件的操作
# 创建控件,设置控件的大小,位置,样式信息,事件,信号的处理
# 2.1 创建控件
# 但我们创建好一个控件之后,如果说,这个控件没有父控件,则把它当做顶层控件(也叫窗口)
# 系统会自动的给窗口添加一些装饰(标题栏),窗口控件具备一些特性,包括:
# 设置标题,图标
window = QWidget()
# 创建按钮
# window = QPushButton()
# 创建标签
# window = QLabel()
# 2.2 设置控件
# 控件创建好后,可以设置空间的大小等
window.setWindowTitle("社会我顺哥,人狠话不多") # 顶层控件的窗口名
window.resize(500, 500)
window.move(400,200) # 窗口左上角的坐标(x, y)
# 控件也可以作为一个容器(承载其他的控件)
# 将window这个窗口添加一个label控件,window相当于容器
label = QLabel()
label.setText("Hello, Sz")
label.move(200,200)
label.show() # 如果label没有父控件,需要单独show
# 2.3 展示控件
# 刚开始设置好一个控件之后,如果没有父控件,默认情况下不会展示,只有手动的调用show()才可以
# 如果这个控件有父控件的话,父控件展示的时候,子控件会自动展示
window.show()
# 3.应用程序的执行,进入到消息循环 app.exec_()
# 整个程序进如无线循环,如果执行完不循环的话,界面就会一闪而过,循环就可以保持界面一直存在
# 检测整个程序所接受到的用户的交互信息
# app.exec_() 执行的一些错误信息报给 sys.exit()
sys.exit(app.exec_())