PyQt学习笔记01基本UI
- 计算机科学
- 2023-09-07
- 54热度
- 0评论
一、总述:
学习链接:https://doc.itprojects.cn/0001.zhishi/python.0008.pyqt5rumen/index.html#/02.ui
#QT练习的快速入门程序
import sys
from PyQt5.QtWidgets import QApplication, QWidget
if __name__ == '__main__':
#只要是QT的对象 有且只有一个Qapplication
#sys.argv传递运行参数到Qapplication对象去
app = QApplication(sys.argv)
#创建了一个Qwidget对象,并且设置好它的标题
w = QWidget()
# 设置窗口标题
w.setWindowTitle("我的第一个PyQt窗口")
#调用show()方法显示出这个对象
# 展示窗口
w.show()
# 程序进行循环等待状态
app.exec()
开发中最常用的功能模块主要有三个:
- QtCore:包含了核心的非GUI的功能。主要和时间、文件与文件夹、各种数据、流、URLs、mime类文件、进程与线程一起使用
- QtGui:包含了窗口系统、事件处理、2D图像、基本绘画、字体和文字类
- QtWidgets:包含了一些列创建桌面应用的UI元素
用到什么功能就它相关的api或者别人分享的使用心得,这是学习最快的方式
本节所有代码汇总所示:
import sys
from PyQt5.QtWidgets import QApplication,QWidget,QLabel,QPushButton,QLineEdit,QDesktopWidget
from PyQt5.QtGui import QIcon
if __name__ == '__main__':
#sys.argv 是Python标准输入参数列表,通常用于命令行参数。
#只要是QT的对象 有且只有一个Qapplication
#sys.argv传递运行参数到Qapplication对象去
app = QApplication(sys.argv)
#创建一个对象
w = QWidget()
# 设置窗口标题
w.setWindowTitle("第一个PyQt")
#更改窗口的大小
w.resize(500,200)
#设置窗口的图标,注意图像的素材文件要在文件夹中
w.setWindowIcon(QIcon('panda.jpg'))
# 调整窗口在屏幕中央显示
center_pointer = QDesktopWidget().availableGeometry().center()
x = center_pointer.x()
y = center_pointer.y()
# w.move(x, y)
# w.move(x-150, y-150)
print(w.frameGeometry())
print(w.frameGeometry().getRect())
print(type(w.frameGeometry().getRect()))
old_x, old_y, width, height = w.frameGeometry().getRect()
w.move(int(x - width / 2), int(y - height / 2))
# 纯文本
#创建一个Label,并且指定它的父类是谁
label = QLabel("账号:", w)
#显示位置和大小
label.setGeometry(20, 20, 35, 40)
#创建一个能够进行输入的文本框
edit = QLineEdit(w)
edit.setPlaceholderText("请输入账号")
#显示位置和大小
edit.setGeometry(85, 20, 200, 40)
# 在窗口里面添加控件
btn = QPushButton("注册", w)
btn.setGeometry(50, 80, 70, 30)
# 展示窗口
w.show()
# 程序进行循环等待状态
app.exec()
二、基本UI情况
窗口内的所有控件,若想在窗口中显示,都需要表示它的父亲是谁,而不能直接使用 show 函数显示
1、按钮
按钮对应的控件名称为 QPushButton
, 开头库的声明中位于 PyQt5.QtWidgets
里面
#在窗口中创建控件
btn = QPushButton("按键")
#添加到当前窗口显示,表示它的父亲是谁
btn.setParent(w)
2、文本
纯文本控件名称为 QLabel
, 位于 PyQt5.QtWidgets
里面
#创建一个Label,并且指定它的父类是谁
label = QLabel("账号",w)
label.setParent(w)
#显示位置和大小
label.setGeometry(150,100,50,50)
3、输入框
输入框的控件名称为 QLineEdit
, 位于 PyQt5.QtWidgets
里面
#创建一个能够进行输入的文本框
edit = QLineEdit(w)
edit.setPlaceholderText("请输入账号")
edit.setGeometry(50,80,70,30)
4、调整窗口的大小
w.resize(500,200)
import sys
from PyQt5.QtWidgets import QApplication,QWidget,QLabel,QPushButton,QLineEdit
if __name__ == '__main__':
#sys.argv 是Python标准输入参数列表,通常用于命令行参数。
app = QApplication(sys.argv)
#创建一个对象
w = QWidget()
# 设置窗口标题
w.setWindowTitle("第一个PyQt")
w.resize(500,200)
# 纯文本
label = QLabel("账号:", w)
label.setGeometry(20, 20, 35, 40)
# 文本框
edit = QLineEdit(w)
edit.setPlaceholderText("请输入账号")
edit.setGeometry(85, 20, 200, 40)
# 在窗口里面添加控件
btn = QPushButton("注册", w)
btn.setGeometry(50, 80, 70, 30)
# 展示窗口
w.show()
# 程序进行循环等待状态
app.exec()
5、将窗口移到屏幕的中央
# 调整窗口在屏幕中央显示
center_pointer = QDesktopWidget().availableGeometry().center()
x = center_pointer.x()
y = center_pointer.y()
# w.move(x, y)
# w.move(x-150, y-150)
print(w.frameGeometry())
print(w.frameGeometry().getRect())
print(type(w.frameGeometry().getRect()))
old_x, old_y, width, height = w.frameGeometry().getRect()
w.move(int(x - width / 2), int(y - height / 2))
注意下面的强制类型转换
6、设置窗口icon
import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QApplication, QWidget
if __name__ == '__main__':
app = QApplication(sys.argv)
# 创建一个QWidget
w = QWidget()
# 设置标题
w.setWindowTitle("看看我图标帅吗")
#设置窗口的图标,注意图像的素材文件要在文件夹中
w.setWindowIcon(QIcon('panda.png'))
# 显示QWidget
w.show()
app.exec()