当前位置:   article > 正文

【python】图形化开发pyqt6基本写法模板与基础控件属性方法整理_python pyqt6

python pyqt6

pyqt6的简介

首先呢Python有许多可以编写图形化界面的库,我们通常跟着教程的话最初会接触的tkinter,但是学习中会发现编写的图形化跟我们平常接触的软件有很大区别(简单来说就是丑)。

pyqt则是第三方库,在Python中算是功能最强的图形化库了。但是相对来说他的功能太多,光要认识里面的功能就要花很长时间,而且各种控件的功能实现也需要花时间学习。

值得注意的是,这个qt类的库是个跨平台跨语言的库,c++等也可以用。

pyqt开发模式介绍

pyqt库并不像我们常用的库一样,页面需要我们一行行代码写。

当然我们也可以选择一行行写,不过效率低还不明显。

他是用图形化手拖动,捏出一个界面,然后生成一个ui文件,我们可以直接导入ui文件写代码,或者直接把ui文件用工具给转化成python的文件,在这个窗口界面已经捏成的情况下写代码。

pyqt库以及工具的安装看一下别的博客吧。

PyQt6安装教程-CSDN博客

pyqt开发工具功能介绍

Qt Designer

7a016b9dca6c486da0cd3c02414ac85b.png

 他是一个图形化的图形设计工具,能够支持我们通过拖拽来设计图形化的页面,并且生成的ui文件可以直接被pyqt调用。

Pyuic

这个是把ui文件转化成py文件的工具,能够把我们捏的图形化ui文件转化成为py脚本。

基本窗口制作模板

类解释:

QApplication:可以理解为,这个类就是用来保证窗口执行的,有着循环监听等方法,图形化都需要实例一个这个类的对象
QWidget:这个类理解为进行窗口的基本编辑,调整窗口大小标题等都是通过这个类进行实现

sys:这个是python自带的类,用于跟系统进行交互,图中的sys.argv返回的就是当前程序在系统的绝对路径,和一些初始自己设定的参数,配置好后可以用app这个实例化的对象进行调用出来

uic:识别使用ui文件

661b98ce51d24195a94028f02fef8ea1.png

输出结果:

b4b2272e675b482f99855085434ca634.png

84ee7c0b414e402bb6e1ae7a004e1565.png

 窗口的设计属性和方法

首先根据上面类的介绍,我们可以了解到用于编辑窗口的类是QWidget,所以我们要编辑的对象是win这个对象。

设置窗口标题
setWindowTitle()
设置窗口大小
resize()
移动窗口在屏幕的位置
move()

具体都是放到show之前

当然也可以把move放到show后面,然后放到循环里,让窗口在桌面上疯狂移动这类的骚操作。

最终代码是这个样子

cd739c49980b47eb864c284ce8cfeb1b.png

执行结果

就是一个窗口疯狂的在桌面抖动,截图截不出效果,了解一下即可。

这些就是一个页面程序的基本框架。

认识图形化开发界面

505a038ba1424d5785db2babfebc4f42.png

左侧是各种的窗口组件,我们可以直接拖到窗口中,然后直接拖动指定大小,右下属性编辑器就是窗口和各个组件的属性,我们拖上组件后再右下角这里进行编辑调整。

最后保存后就生成了ui文件。

比较简单跟画图一样动手两下就能知道怎么用了。

ui文件应用模板

我们用工具捏的图形化界面实际上并不是一个完整的窗口框架,只是帮我们把这个窗口框架中间的部分这些窗口设计的方法写好,具体的实例化app和窗口展现监听等需要我们人为的添加上去才能正常运行。

首先我们使用ui文件的话,就不需要我们自己编辑了,所以我们不需要使用QWidget,但是QApplication类保证窗口正常执行,还有程序的sys都要用,所以我们必须加上。

而且我们还需要导入uic这个库来识别ui文件。

具体的使用模板如下

ca07bd9704294dd8bec2c7f88ae1d2b0.png

文本类控件

label标签

9b2d5de201f24885a0d5484f9c512b71.png

就像商场的货架上的价格标签一样,就是一段文字

label可以选用的属性如下

属性列举

dcda99ad64b141caa459eaaf57ea9840.png498473b284da4b63bdb25b6ffcbd2262.png

部分效果说明

text:标签显示的文字

alignment:对齐方式

wordwrap:换行显示(默认一行中超出框外的不显示,加上后换行显示)

openexternallinks:选择后可以用html代码使用链接

pixmap:放置图片

scaledContents:图片与标签大小不一致时,选上之后图片会按照自己比例不失真的变成与标签一样大

textformat:文本格式(纯文本还是可以用html代码等设置)

 代码样式

代码设置这些属性只需要

set+属性名(属性每个单词的第一个单词大写)

例如:text文本的写法

setText()

可以写出ui文件来后转化成py进行观察。

添加超链接

勾选openexternallinks后输入html代码

3fc780e50e0740ddb4466f0b9e76f1a1.png

 

d77f89e61179476492af5896b8f4d469.png

读取标签内容

这里有两个标签

fd6159a8c60e43909b2377e6499ac83c.png

他们在ui文件转化的py文件中是这样的

99dbc9bcdbd3464d874a4986f38188ec.png

最先捏造的是label,之后的就是label_2以此类推

获取内容的代码

03b432b6f0cf4793978f8c57ca223c75.png

 单行文本框

8007bb3013ed49f08e601386ab0026c3.png

部分属性功能

979bcd06d60a4fc4b3b7999ad999e1e0.png

text:默认文本框中输入的文字

maxlength:限制最大的文本长度

placeholdertext:当没有输入文字时显示的文本

readonly:只读模式

chomode:文本显示设置(不显示内容,掩码代替等设置)

inputmask:输入格式,比如写时间输入格式,别人输入数字自动按照时间格式分年月日

单行文本操作函数

类似于label的读取text函数一样。

text()显示文本框中的内容

clear()清除文本框中的内容

b608c41df5c84f28848fcd06ed902161.png

 限制用户输入内容

类似于使用正则表达,也可以用re模块,不过qt自带了这个功能,而且比较简便。

部分图形化中没有的设置

当然图形化的界面也并不是很全能,有一小部分是需要自己用代码去设置。

首先代码的书写类型都是统一的set+属性(每个单词的第一个字母大写)

设置方法都是与text文本输出类似,让他们赋值给一个变量后使用set方法就好了。

Focus()窗口开启后可以直接按键盘对目标文本框进行输入

总结

利用这个单行文本框可以来制作那种登录页面是很方便的。

多行富文本框

标签:

8e27352247ba4654890691a3dc68beb5.png

 功能:

可以显示编辑多行内容

能够展现html的代码

超出文本框自动解锁滑栏可以滑动

属性

cf3ae00ada9b4b3aa12ed27f9d880de5.png

9b1788fa45f64877aa3740938dfc1833.png

placeholdertext:文本内容

html:写上html代码可以显示html页面

linewrapmode:换行模式,默认到边框换行,也可以设置别的。

linewrapcolumnor..:到达距离左侧。。。的位置自动换行

 部分图形界面没有的设置

qt烦人就烦人在库太多了。。。记得引入一下qtgui,卡了好久。

TextColor(QtGui.QColor(*,*,*))#放到设置文本之前,设置文字颜色

TextBackgroundColor()#设置背景颜色

bd2b8950b7b346ddbd4a64dd3d969dff.png

纯文本框

跟富文本框的用法基本一样,唯一的区别就是:功能少。。。

图标:

e197cb8934ec4300ae94c70b77410879.png

属性

49e246ea5d5948a9bf0bc7fcfcf9345a.png

数字选择控件

整数数字选择

图标:

650a75f22270436290bcfd0aec7a7784.png

 

样式:

0bf632c2fa224d90be611b1b4ba65733.png

 属性

be9f403f06674a40b19de07d3cc5db7f.png

 value:返回当前的数字

max/minmun:最大最小值

singlestep:点一下上下加减多少数字

steptype:跳步模式(固定步长,根据数字自动调整步长)

suffix:后缀

prefix:前缀

 小数数字选择

图标:

922321d04e6d4549adeb5436980f3b7b.png

属性

10eb9ee5c47b4342baf6523a68e28531.png

 跟整数一样,不过他多了

decimals:小数位数

LCD数字

图标:

6b6642529a1d42a2825f05529f9adbb9.png

样式:

9f5eebe3339748e2bf13b4e488794f41.png

拿来记录比分什么的挺好看

属性

2df8ad6a3bc148b0a2581721773d0a0f.png

smalldecimal:数字显示的小

digitcount:显示位数

mode:数字的进制

segmentstyle:数字的样式

value:获取显示的数值

按钮类控件

 pushbutton按钮

图标:

3aa22e9540d844dfbcafadfff014c945.png

 整体按钮属性

以下整理是从网上找的图:

cf2ca72f85a9459f9e237a87b0d6b9b7.png

 自身特有属性

bef573b2700641e39ba5bbae0e35416a.png

 第一二个属性点上按钮周围有蓝圈,有那种点击的特效。

扁平化就是不会显示按钮样子,只有文字。

toolbutton按钮

图标:

8bdc2cbf35ab433bae3f52430293732c.png

描述:类似于下拉工具栏本质上也是个按钮

属性

19cd83d4c63046f084f16365147a3fcc.png

commandlinkbutton按钮

图标:

b4eae62d74b849eeababf31183856a2a.png

样式:

2cd6cf20c3e04036807f711238925e78.png

描述:由pushbutton继承而来,自身特有的就是添加另一行注释。

属性

7a82c3230e4248e2ab525b6ebc72fa02.png

只有这一个属性,使用后在下面添加一行说明

a12ba642a0ad41859a3c499b9a0f9a63.png

radio button按钮

图标:

af28d85406134e53a87c2535d7dcccd3.png

作用:单选按钮,只能选择一个

样式:

3ed08e82133346729b967edfa220a5bd.png

 属性

他没有自己的属性,他只能用他继承的按钮的属性,没有自身独特属性。

多选按钮

图标:

2dbd064112084142bdb75565eb4a34dc.png

样式:

53f4fb8052254bb79fa55cec72a6af0c.png

描述:可以多选,根据设置的属性还可以半选

属性

除了继承的按钮的属性外,自身只有一个属性

95dc28bb9a024bd8bd436f64d2e7b3c3.png

选上后,按一下是半选,按两下是选择

按钮组

图标:

660b26f67eb64cba8bd26a9d72915507.png

样式:

0866e3a60a96490db31147aa7bd49aa3.png

一组已经编辑好的按钮

属性

0204c337e7b3436481f5e66bb1dc6501.png

orientation:按钮的横纵排列

standardbuttons:添加删除按钮

centerbuttons:在框内居中显示

下拉列表类按钮

combobox下拉框组件

图标:

f4f716824445407baaaf83189e3c0b0f.png

样式:

f19555fe9f364d44b2c0efa2533881d1.png

 属性

f8f1ed44bcee4042bfd1492c25080730.png

 placeholdertext:下拉框显示的文字

editable:是否可编辑

maxvisibleltems:点一下最大显示几个项目,其他的下拉

insertpolicy:设置我们插入项目的方式和位置

1a003ae3372b4db7a79e239be4ed542c.png

iconsize:图标大小

maxcount:最多能插入多少个项目

modelcolumn:可见的栏数默认0

duplicatesenabled:是否能插入重复的项目

操作方法

d571073ebf8c41cdbd3c97928efc1de8.png

 使用方法

e48ec76eb9444a91b4f0b67f57f49e5b.png

1bcc54ed090643a39e329841e0c09c0a.png

 文体下拉框组件

图标:

b45cc360ceec41e3aeb0b321adf4bac9.png

样式:

c087d3990709496fbd5c2bffeac262a1.png

属性

属于combobox的子类,继承全部combobox,并且自身有这些属性

0d136eddd1394b348feeb23bc5e257d2.png

 writingsystem:语言选择(英语,数字,罗马,中文等选择)

fontfilters:字体过滤,只会展现满足要求的文字

currentfont:编辑当前默认的文体

而且他也继承了combobox的方法,也可以用他的方法进行编辑

list widget框

图标:

390e6a146b224cacb97c135748c59c57.png

 样式:

就像我们看电视剧那种选集一样,在视频的旁边一栏中很多的按钮

a9e4feb708a240f1830bc0b6b106a588.png

属性

他功能比较全面,但也因为全面,这个控件继承的类多到离谱。

他继承的类:

02b181bf8fdd4cc392bd35923e7828fb.png

常用的方法(网图)

3c938ec83d164be59c9ebfc94ea076aa.png

补充:viewmode里的列表必须把自动换行选上才能用。

跟之前的插入方法一样使用

e1fc2a15e68e4866ba29a94acf65e8f8.png

 容器控件类

作用:把一个大的窗口去划分成很多小型的区域,便于对窗口功能的细化

group box

图标:

e6bf4b9d2f6c4f15968b3f544c0c905d.png

样式:

5f7a51f4e97c4bec8dca12cd37ec938c.png

属性

84dbe718548f407aa1d30c88ccaf5032.png

属性很明显,下面的是样式,上面就是标题和对齐方式。

选项卡

图标:

42e789009d6b4a3c84f79526045ac189.png

样式:

b1ad92a7cd9445ae8b5810ea9be72c79.png

属性

bc6b11ca5c984b45900adc4e8c9c459a.png

tabposition:标签位置

tabshap:标签的形状

currentlndex:当前的页的索引

tabsclosable:添加一个标签关闭按钮

moveable:标签可以拖动移动

iconsize:图标大小

currenttabtext:当前页的名字

currenttablcon:这页的图片

currenttabtooltip:鼠标指向标签提示标签作用

 方法:

5b4f5a1a525c4791b417e9d182453cb7.png

我们也可以在设计页面直接右键选择添加页添加。

tool box工具盒控件

图标:

66b0b3b1d7314ea3a51e0488cf3b1b29.png

样式:

9edaec1a79a2445687072dd8e081b8a2.png

 属性

4f3cc6ba30e54cd2b443c319a3a20b8d.png

方法

a6a6f7e5302a4e3b931c4580027e3ac0.png

日期控件

日期时间控件

图标:

b6b7c619ffab44a1b55690539604437e.png

样式:

7fee3d8d22e34b04a54a5eef3949645b.png

属性

1ddb35bdf53b4921b09e741d87a59f15.png

 datetime:默认显示的时间

maximumdatetime:最大日期

minimumdatetime:最小日期

timespec:时区

4d9543d281914650ac341effff6ccafa.png

8424130c5cdc42878114190c016cb4f7.png

日历控件

图标:

8a7bdbe464344844b92ff3d8ca99b34e.png

样式:

759a453956424da29afcbf5d8ea50046.png

方法属性

6010912a95494340b055991d0497903a.png

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/830742
推荐阅读
相关标签
  

闽ICP备14008679号