Pyqt 写用户界面的测试小工具

目录

目录

一. 简介

· 什么是pyqt?

· pyqt有哪些优势?

二. 环境搭建

三. pyqt5三个窗口基类

· QmainWindow

· QDialog

· QWidget

四. Pyqt常用组件

· 按钮类

· 显示组件

· 输入组件

· 容器类

五. 组件常用方法

· 文本类控件

· 按钮类控件

· 选择列表类控件

· 容器类控件

· 日期时间类控件

六. GUI常用的两种布局方式

· 绝对位置布局

· 布局类简介

七. setStyleSheet用法

· 窗口基类全局定义

八. QFrame简介

九. exe文件生成

十. 实战篇:写一个测试工具

版本变更信息:

版本号

日期

填写人

变更主要原因描述

备注

v1.0

2022.6.9

罗浩铭

新增

  • 简介

· 什么是pyqt?

Qt 是使用 C++ 语言编写的跨平台 GUI 库,支持 Windows、Mac OS X 和 Linux。

PyQt 是一个用于创建 GUI(图形界面) 应用程序的跨平台工具包,它将 Python 与 Qt 库融为一体。也就是说, PyQt 允许使用 Python 语言调用 Qt 库中的 API。这样做的最大好处就是在保留了 Qt 高运行效率的同时,大大提高了开发效率。因为使用 Python 语言开发程序要比使用 C++ 语言开发程序快得多。PyQt 对 Qt 做了完整的封装,几乎可以用 PyQt 做 Qt 能做的任何事情。

· pyqt有哪些优势?

  1. 跨平台效果好,完美支持mac、windows、unix等多种系统;
  2. 学习简单,面向对象的特性体现的比其他框架明显;
  3. 功能强大,基本能实现QT能实现的所有功能;
  4. 文档丰富

文档:PyQt5 Reference Guide — PyQt v5.15 Reference Guide

免费的教学视频:http://www.bl186.net/

  1. 拥有QT Designer和QSS支持,界面效果更好
  2. Pyqt是双重许可,开发者可以在gpl和商业许可之间进行选择
  3. 。。。

  • 环境搭建

安装python:

下载链接:https://www.python.org/getit/

安装python编译器pycharm

http://www.jetbrains.com/pycharm/download/index.html#section=windows

安装PyQt5模块:

win+r 输入cmd

pip install PyQt5 -i Simple Index

安装PyQt5的工具包

pip install PyQt5-tools -i https://pypi.douban.com/simple

安装可能出现的问题:

安装Pyqt5-tools失败

解决办法:

pip install PyQt5-tools -i https://pypi.douban.com/simple --user

  • pyqt5三个窗口基类

· QmainWindow

QMainWindow 类经常被继承,可以包含菜单栏,工具栏,状态栏,标题栏等,是GUI程序的主窗口。如果我们需要创建主窗口程序,就使用该类。

方法

描述

addToolBar()

添加工具栏

centralWidget()

返回窗口中心的控件,未设置返回NULL

menuBar()

返回主窗口的菜单栏

setCentralWidget()

设置窗口中心的控件

setStatusBar()

设置状态栏

statusBar()

获取状态栏对象

addToolBar():

Pyqt 写用户界面的测试小工具_第1张图片

menuBar():

Pyqt 写用户界面的测试小工具_第2张图片

statusBar():

Pyqt 写用户界面的测试小工具_第3张图片

· QDialog

QDialog是对话框窗口的基类,对话框一般用来执行短期任务,或者与用户进行互动,它可以是模态的也可以是非模态的。QDialog没有菜单栏,工具栏,状态栏等。如果我们需要的是对话框,就选择该类。

QDialog 类的子类主要有 QMessageBox、QFileDialog、QFontDialog、QInputDialog、QColorDialog、QErrorMessage、QProgressDialog、QTabDialog、QWizard 等

· QWidget

该类作为QMainWindow和QWidget的父类,并未细化到主窗口或者对话框,作为通用窗口类,如果不确定具体使用哪种窗口类,就可以使用该类。

QWidget 类是所有用户界面对象的基类,窗口部件是用户界面的一个基本单元,它从窗口系统接收鼠标、键盘和其他消息,并在屏幕上绘制自己。一个窗口部件可以被它的父窗口或其他窗口挡住一部分。

QWidget 类直接提供的成员函数:x( )、y( ) 用于获取窗口左上角的坐标,width( )、height( ) 用于获取窗口的宽度和高度。

QWidget 类中的 frameGeometry( ) 方法提供的成员函数:x( )、y( ) 用于获取客户区左上角的坐标,width()、height( ) 用于获取客户区的宽度和高度。

QWidget 类中的 frameGeometry( ) 方法提供的成员函数:x( )、y( ) 用于获取窗口左上角的坐标,width( )、height( ) 用于获取包含客户区、标题栏和边框在内的整个窗口的宽度和高度。

  • Pyqt常用组件

· 按钮类

QPushButton 普通按钮

QToolButton 工具按钮:通常在工具栏使用

QRadioButton 单选框

QCheckBox 复选框

QCommanLinkButton Vista风格的命令链接按钮

QDialogButtonBox 对话框按钮组:确定、取消

· 显示组件

Pyqt 写用户界面的测试小工具_第4张图片

QLabel 标签

QTextBrowser 文本区域

QGraphicsView 图像显示

QCalendarWidget 日历组件

QProgressBar 进度条

QLCDNumber 液晶数字显示

QWebView Web浏览器视图

QDeclarativeView 显示Qt声明的用户接口

· 输入组件

Pyqt 写用户界面的测试小工具_第5张图片

 QComboBox 下拉选框

 QFontComboBox 字体选择

 QLineEdit 单行文本框

 QTextEdit 多行文本框(富文本)

 QPlainTextEdit 多行文本框(纯文本)

 QSpinBox 整数范围调节器

 QDoubleSpinBox 实型范围调节器

 QDial 环形范围调节器

 QSlider 滑动调节器

 QTimeEdit 时间输入框

 QDateEdit 日期输入框

 QDateTimeEdit 时间日期输入框

· 容器类

QFrame 帧窗口

QWidget 界面部件,所有界面对象类的基类

QToolBox 工具栏容器

QTabWidget 多标签容器

QStackedWidget 层次容器,一次只有一个可见

QScollArea 滚动区域

QGroupBox 对象组容器

QMdiArea 多文档容器

QDockWidget 悬浮容器

QDail, QSpinBox的使用

  • 组件常用方法

· 文本类控件

· Label标签控件

· lb.setAlignment 设置对齐方式

· lb.setWordWrap(True) 设置文本换行显示

· lb.setOpenExternlLinks(True)设置允许访问超链接

· 为标签设置图片:首先要导入QPixmap,lb.setPixmap(QPixmap('图片路径'))

· LineEdit 单行文本框

· setPlaceholderText() 设置文本框浮现文字

· setManLength() 设置允许文本框内输入字符的最大长度

· setAlignment() 设置文本对齐方式

· setReadOnly() 设置文本框只读

· setEchoMode 设置文本框显示字符的模式  le.NoEcho 不显示任何输入的字符 le.password 显示与平台相关的密码掩码字符,而不是实际输入的字符,le.PasswordEchoOnEdit 在编辑时显示字符,失去焦点后显示密码掩码字符

· setValidator

· QIntValidatoe :限制输入整数

· QDoubleValidator: 限制输入小数

· QEegExpValidator: 检查输入是否符合设置的正则表达式

· clear() 清除文本框内容

· TextEdit 多行文本框

· setPlainText() 设置文本内容

· toPlainText() 获取文本内容

· setTextColor(QtGui.QColor)设置文本颜色

· setTextBackgroundColor()设置文本的背景颜色

· setWordWrapMode()设置自动换行

· SpinBox 整数数字选择控件

· setValue()设置控件的当前值

· setMaximum()设置最大者

· setMinimum()设置最小值

· setRange()设置取值范围

· setSingleStep() 单机上下箭头的步长值

· DoubleSpinBox 小数数字选择控件

· LCDNumber 液晶数字显示控件

· 按钮类控件

· setIcon()  设置按钮上的图标,可以将参数设置为QtGui.QIcon('图标路径')

· setIconSize() 参数可以设置为QtCore.QSize(width,height)

· setEnabled()

· setShortcut()

· 选择列表类控件

· comboBox 下拉组合框

· addItem() 添加一个下拉列表框

· addItems() 从列表中添加下拉选项

· currentText()获取选中项的文本

· currentIndex()获取选中项的索引

· itemText(index) 获取索引为index的项的文本

· setItemText(index,text)设置索引为index的项的文本

· count() 获取所有选项的数量

· clear() 删除所有选项

· 常用信号:actived和currentIndexChanged  actived信号在选中一个下拉选项时发射,currentIndexChanged信号在下拉选项的索引发生改变时发射

· QListWidget

· addItem() 向列表中添加项

· addItems() 一次向列表中添加多项

· insertItem() 在指定索引处插入项

· setCurrentItem() 设置当前选择项

· item.setToolTip()设置提示内容

· item.isSelected()判断项是否选中

· setWordWrap()设置是否自动换行

· setViewMode()设置显示模式

· item.text()获取项的文本

· clear()删除所有列表项

· 容器类控件

· GroupBox

· setTitle()设置分组标题

· ToolBox

· addItem() 添加选项卡

· setCurrentIndex() 设置当前选中的选项卡索引

· setItemIcon() 设置选项卡的图标

· setItemText()设置选项卡的标题文本

· setItemEnabled() 设置选项卡是否可用

· insertItem() 插入新选项卡

· removeItem() 移除选项卡

· itemText() 获取选项卡的文本

· currentIndex() 获取当前选项卡的索引

· 日期时间类控件

· CalendarWidget

· setMinimumDate() 设置最小日期

· setMaximumDate 设置最大日期

· setFirstDayOfWeek 设置一周的第一天 Qt.Monday

· setGridVisible 设置是否显示网格线

· setSelectionMode 设置选择模式 1.QCalendarWidget.NoSelection:不能选中日期  2.QCalendarWidget.SingleSelection

· setHorizontallHeaderFormat 设置水平头部格式

· QCalendarWidget.NoHorizontalHeader 不显示水平头部

· QCalendarWidget.SingleLetterDayNames:"周"

· QCalendarWidget.ShortDayNames:简短天的名称,如:周一

· QCalendarWidget.LongDayNames: 完整天的名称 如“星期一”

· setNavigationBarVisible 设置是否显示导航栏

· setDateEditEnabled 设置是否可以编辑日期

· setDateEditAcceptDelay() 设置编辑日期的最长间隔

· selectedDate()获取选择的日期,返回值而QDate类型

· 常用的信号时selectionChanged,该信号的选择的日期发生改变时发射

· QDateTimeEdit

· setTime设置时间

· setMaximumTime() 设置最大时间

· setMinimumTime()设置最小时间

· setTimeSpec()获取显示的时间标准

· LocalTime 本地时间

· UTC 世界标准时间

· setDate()设置日期

· setMaximumDate()设置最大日期

· setMinimumDate()设置最小日期

· setDisplayFormat() 设置日期时间显示样式

· 日期样式:yyyy/MM/dd

· 时间样式:HH:mm:ss

· date()获取显示的日期,返回QDate类型

· time()获取显示的时间,返回值为QTime类型

· dateTime()获取显示的日期时间,返回值为QDateTime类型

· 常用信号

· timeChanged 时间发生改变时发射

· dateChanged 日期发生改变时发射

· dateTimeChanged 日期或者时间发生改变时发射

  • GUI常用的两种布局方式

· 绝对位置布局

组件不放在布局管理器种,而通过函数setGeometry(x, y, width, height)来设定组件相对其父窗口的位置。其中x, y是组件左上角的坐标,width, height是组件的宽和高。在绝对位置布局中,resize()函数可以调整组件尺寸,setGeometry( ) 函数可以调整组件位置和尺寸,甚至重载 sizeHint( ) 函数也可以设定组件尺寸。采用绝对位置布局方式,组件的位置和尺寸固定,并不会随着父窗口位置和尺寸的改变而发生改变。

例:

Pyqt 写用户界面的测试小工具_第6张图片

Pyqt 写用户界面的测试小工具_第7张图片

· 布局类简介

常用的布局类如下:

· 水平布局管理器(QHBoxLayout)可以把添加的控件以水平的顺序依次排开;

你可能感兴趣的:(qt,python,开发语言)