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

news2024/9/20 13:56:35

pyqt6的简介

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

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

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

pyqt开发模式介绍

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

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

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

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

PyQt6安装教程-CSDN博客

pyqt开发工具功能介绍

Qt Designer

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

Pyuic

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

基本窗口制作模板

类解释:

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

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

uic:识别使用ui文件

输出结果:

 窗口的设计属性和方法

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

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

具体都是放到show之前

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

最终代码是这个样子

执行结果

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

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

认识图形化开发界面

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

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

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

ui文件应用模板

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

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

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

具体的使用模板如下

文本类控件

label标签

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

label可以选用的属性如下

属性列举

部分效果说明

text:标签显示的文字

alignment:对齐方式

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

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

pixmap:放置图片

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

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

 代码样式

代码设置这些属性只需要

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

例如:text文本的写法

setText()

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

添加超链接

勾选openexternallinks后输入html代码

读取标签内容

这里有两个标签

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

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

获取内容的代码

 单行文本框

部分属性功能

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

maxlength:限制最大的文本长度

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

readonly:只读模式

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

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

单行文本操作函数

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

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

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

 限制用户输入内容

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

部分图形化中没有的设置

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

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

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

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

总结

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

多行富文本框

标签:

 功能:

可以显示编辑多行内容

能够展现html的代码

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

属性

placeholdertext:文本内容

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

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

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

 部分图形界面没有的设置

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

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

TextBackgroundColor()#设置背景颜色

纯文本框

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

图标:

属性

数字选择控件

整数数字选择

图标:

样式:

 属性

 value:默认值

max/minmun:最大最小值

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

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

suffix:后缀

prefix:前缀

 小数数字选择

图标:

属性

 跟整数一样,不过他多了

decimals:小数位数

LCD数字

图标:

样式:

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

属性

smalldecimal:数字显示的小

digitcount:显示位数

mode:数字的进制

segmentstyle:数字的样式

value:获取显示的数值

按钮类控件

 pushbutton按钮

图标:

 整体按钮属性

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

 自身特有属性

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

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

toolbutton按钮

图标:

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

属性

commandlinkbutton按钮

图标:

样式:

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

属性

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

radio button按钮

图标:

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

样式:

 属性

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

多选按钮

图标:

样式:

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

属性

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

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

按钮组

图标:

样式:

一组已经编辑好的按钮

属性

orientation:按钮的横纵排列

standardbuttons:添加删除按钮

centerbuttons:在框内居中显示

下拉列表类按钮

combobox下拉框组件

图标:

样式:

 属性

 placeholdertext:下拉框显示的文字

editable:是否可编辑

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

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

iconsize:图标大小

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

modelcolumn:可见的栏数默认0

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

操作方法

 使用方法

 文体下拉框组件

图标:

样式:

属性

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

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

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

currentfont:编辑当前默认的文体

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

list widget框

图标:

 样式:

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

属性

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

他继承的类:

常用的方法(网图)

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

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

 容器控件类

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

group box

图标:

样式:

属性

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

选项卡

图标:

样式:

属性

tabposition:标签位置

tabshap:标签的形状

currentlndex:当前的页的索引

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

moveable:标签可以拖动移动

iconsize:图标大小

currenttabtext:当前页的名字

currenttablcon:这页的图片

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

 方法:

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

tool box工具盒控件

图标:

样式:

 属性

方法

日期控件

日期时间控件

图标:

样式:

属性

 datetime:默认显示的时间

maximumdatetime:最大日期

minimumdatetime:最小日期

timespec:时区

日历控件

图标:

样式:

方法属性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1421831.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何快速记忆小鹤双拼键位图?

记忆方法:韵母表 图形 最常用字 韵母表:双拼的基础 图形:帮助新手快速联想回忆 最常用字:快速打字基础 一、单韵母(紫色方块) 一一对应如下表: 单韵母aoeiu、AOEIV 二、复韵母—箭矢型&am…

Netty源码三:NioEventLoop创建与run方法

1.入口 会调用到父类SingleThreadEventLoop的构造方法 2.SingleThreadEventLoop 继续调用父类SingleThreadEventExecutor的构造方法 3.SingleThreadEventExecutor 到这里完整的总结一下: 将线程执行器保存到每一个SingleThreadEventExcutor里面去创建了MpscQu…

Jenkins自动化打包

Jenkins自动化打包 下载安装 我们直接从官网https://www.jenkins.io/download/ 下载所需的Jenkins文件 如上图所示, 选择Windows版本,下面就是一路安装即可,需要注意的是,选择作为系统服务选项, 不要自己设置账号密码登录. Web配置 安装完根据提示在浏览器打开 http://lo…

详解SpringCloud微服务技术栈:深入ElasticSearch(1)——数据聚合

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:详解SpringCloud微服务技术栈:ElasticSearch实战(旅游类项目) 📚订阅专栏&#x…

【RT-DETR改进涨点】ResNet18、34、50、101等多个版本移植到ultralytics仓库(RT-DETR官方一比一移植)

👑欢迎大家订阅本专栏,一起学习RT-DETR👑 一、本文介绍 本文是本专栏的第一篇改进,我将RT-DETR官方版本中的ResNet18、ResNet34、ResNet50、ResNet101移植到ultralytics仓库,网上很多改进机制是将基础版本的也就是2015年发布的ResNet移植到ultralytics仓库中,但是其实…

【Emgu CV教程】6.6、图像平滑之GaussianBlur()高斯滤波

文章目录 一、介绍1.原理2.函数介绍 二、举例1.原始素材2.代码3.运行结果 一、介绍 1.原理 高斯滤波是Emgu CV里面最常用的滤波,因为它在平滑图像的同时,可以更好的保留轮廓和边缘信息。下面这段来自百度百科的介绍: 高斯滤波是一种线性平滑…

思腾合力深思系列「IW4230-4GR」可扩展处理器的多场景适配服务器

思腾合力深思系列IW4230-4GR,采用第四代Intel Xeon Eagle Stream可扩展处理器的多场景适配服务器,支持4张双宽GPU卡。 思腾合力深思系列IW4230-4GR GPU服务器/工作站支持双路第四代IntelXeon Eagle Stream系列可扩展处理器,具有高性能、高密度…

【史上最全的接口与抽象类】

Java异常处理与try-catch-finally 抽象类和接口是Java中用于实现抽象和多态的关键概念。 抽象类的定义和语法:接口的定义和语法:接口和抽象类的区别主要在以下几个方面: 抽象类和接口是Java中用于实现抽象和多态的关键概念。 抽象类的定义和…

【Java异常处理与try-catch-finally】

Java异常处理与try-catch-finally try块是被监视的代码块,可能会发生异常的地方。当try块中的代码抛出了异常,程序会立即转入catch块,catch块根据捕获的异常类型进行处理。 Java异常处理是一种机制,用于捕获并处理在程序执行过程中…

用GPT写PHP框架

参考https://www.askchat.ai?r237422 写一个mvc框架 上面是简单的案例,完整的PHP框架,其核心通常包含以下几个关键组件: 1. 路由(Routing):路由组件负责解析请求的URL,并将其映射到相应的控制…

CAD-autolisp(四)——编译

目录 一、编译1.1 界面操作1.2 生成的应用程序(二选一) 二、后续学习 一、编译 编译:lsp后缀名为原文件,后缀名为fas、vlx为编译后文件,其会把sld、dcl、lsp等文件都编译进一个应用程序文件中加载:cad命令…

写作业考试用ChatGPT,留学如何防范“学术不端”危机?

近日,哈佛校长克洛迪娜盖伊在校园“反犹风波”中因立场问题被迫辞职。此外,哈佛大学相关调查委员会还发现盖伊在学术论文中存在错误引用资料来源等问题。对于种种学术不端行为,留学生如何防范?在ChatGPT时代,出国留学如…

C++ 数论相关题目,博弈论,SG函数,集合-Nim游戏

给定 n 堆石子以及一个由 k 个不同正整数构成的数字集合 S 。 现在有两位玩家轮流操作,每次操作可以从任意一堆石子中拿取石子,每次拿取的石子数量必须包含于集合 S ,最后无法进行操作的人视为失败。 问如果两人都采用最优策略,…

保护医疗数据不受威胁:MPLS专线在医疗网络安全中的角色

随着数字技术的快速发展,医疗行业正在经历一场革命。从电子健康记录到远程医疗服务,数字化不仅提高了效率,也带来了前所未有的挑战--尤其是关于数据安全和隐私保护的挑战。在这样的背景下,如何确保敏感的医疗数据安全传输&#xf…

Qt6入门教程 14:QToolButton

目录 一.简介 二.常用接口 1.void setMenu(QMenu * menu) 2.void setPopupMode(ToolButtonPopupMode mode) 3.void setToolButtonStyle(Qt::ToolButtonStyle style) 4.void setArrowType(Qt::ArrowType type) 5.void setDefaultAction(QAction * action) 三.实战演练 1…

C/C++ (stdio.h)标准库详解

cstdio,在C语言中称为stdio.h。该库使用所谓的流与物理设备(如键盘、打印机、终端)或系统支持的任何其他类型的文件一起操作。 在本文将会通过介绍函数参数,举出实际的简单例子来帮助大家快速上手使用函数。 目录 一、流 二、库函数 1、F…

Zerosync:构建基于STARK的Bitcoin证明系统

1. 引言 前序博客: BitcoinSTARK: ZeroSync & Khepri Robin Linus、Tino Steffens、Lukas George 等人成立了一个名为 ZeroSync 协会(ZeroSync Association)的瑞士非营利组织,该组织将牵头开发比特币证明系统。ZeroSync 于…

STM32——ADC

STM32——ADC 1.ADC介绍 ADC是什么? 全称:Analog-to-Digital Converter,指模拟/数字转换器! ADC性能指标 量程:能测量的电压范围分辨率:ADC能辨别的最小模拟量,通常以输出二进制数的位数表示&#xf…

春季选品策略:如何在Shopee平台上脱颖而出

在Shopee平台上进行春季选品时,卖家需要制定有效的策略来吸引消费者的注意并提高销售业绩。本文将介绍一些关键的选品策略,帮助卖家在春季市场中脱颖而出。 先给大家推荐一款shopee知虾数据运营工具知虾免费体验地址(复制浏览器打开&#xf…

嵌入式——模拟/数字转换器(ADC)补充

目录 一、ADC简介 二、ADC功能 1.电压输入范围 2.输入通道 3. 转换顺序 (1)规则序列 (2) 注入序列 4.触发源 5. 转换时间 (1) ADC时钟 (2) 采样时间 6. 数据寄存器 &am…