PyQt——窗口程序的基本结构
前言
上一篇内容初步了解了Qt & PyQt,内容链接:http://t.csdn.cn/eBAf0
本篇内容比较简单,篇幅也较短,主要是为了衔接上一篇内容,为后面的更新提供跳板。
一、功能模块
想要设计一个好的功能窗口需要一些模块来提供一些特殊的功能。
- QtCore 包含核心的非gui功能,用于处理时间,文件和目录,各种数据类型、流、URLs、mime类型、线程或进程。
- QtGui 包含用于窗口系统集成、事件处理、2D图形、基本成像、字体和文本的类。
- QtWidgets 提供一组UI元素来创建经典的桌面风格的用户界面的类。
- QtNetwork 包含用于网络编程的类.通过使网络编程更容易、更便于移植,使TCP/IP和UDP客户端和服务器的编码更容易 。
- QtSql 提供了用于处理数据库的类 。
如何导入模块?
import... #导入模块
from...import... #from 模块 import 方法(函数),导入模块中多个方法(函数)加逗号
from...import * #导入模块中所有方法(函数)
二、控件
(1)关于控件
- 控件是程序界面上的独立元素。
- 控件的父对象必须是控件。
- 当一个控件没有父控件则把他它当做顶层控件(窗口)系统会自动修饰。
(2)常用控件控制函数
举几个简单的例子,其他的也都是相似的。
window = QWidget() # 创建 window 窗口(最开始为空白)
window.Setwindow Title("标题") # 设置window标题
window.show() # 展示控件
window.QpushButton() # 创建按钮,可以点击
window.Qlabel() # 创建标签
window.setText("文本") # 设置标签文本
setStyleSheet("font-size: 30px; color: green;") # 字体颜色大小设置
# 以下两个牢记:
with open("tyset.py", "r") as f: #.py是你写的py文件
qApp.setStyleSheet(r.read()) # 把特证应用于所有相同属性的标签
for sub_widget in 父控件.findChildren(控件类型): # 遍历子控件类型
三、主方法体
下面是几个关键的语句
sys.argv
args=sys.argv #参数通过sys.argv传递给args
- 当通过命令行启动程序时,可以接受命令行传递过来的参数,并且做出逻辑处理。
- 命令行在pycharm中teminal页面下通过格式python + .py (项目名称后面跟上传递的参数) 启动程序。
app.exec_()
- 让整个程序无限(消息)循环(保持窗口不关闭)。
- 检测用户的操作做出回应。
初始化窗口很重要:
setupUi() #可以用来初始化窗口,其还会自动将那些符合onobjectName, signalName()命名管理
#的任意槽与相应的ObjectName的signalName()信号连接到一起。
创建和退出:
QApplication (sys.argv) #创建一个应用程序对象
sys.exit() #当前系统的退出,也可以传递给它一个数值来区分退出状态。
app.arguments( ) #获取项目的参数列表
qApp.arguments( ) #作用同上,但后者属于库中的全局变量可以直接拿来用,
#前者只是自己定义的(app)
对比下面几种主方法体
- 补充:使用show方法来显示窗口。
- 补充:85,86先不要管,它们是关于线程的,后面再说。