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

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.mzph.cn/news/657326.shtml

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

相关文章

ETL怎么实现文件处理

在现代企业及各类组织的日常运作中,数据作为一种关键的信息资源,其管理和分析能力直接影响到决策效率与准确性。文件作为数据的主要载体,承载着从运营报告、客户记录、交易明细等各种类型的数据信息。这些海量且多样的文件数据在未经处理的情…

flask_django基于python的城市轨道交通公交线路查询系统vue

同时,随着信息社会的快速发展,城市轨道交通线路查询系统面临着越来越多的信息,因此很难获得他们对高效信息的需求,如何使用方便快捷的方式使查询者在广阔的海洋信息中查询,存储,管理和共享信息方面有效&…

C语言菜鸟入门·运算符(算数运算符,关系运算符,逻辑运算符,位运算符,赋值运算符,三目运算符)详细介绍

目录 ​编辑 1. 算术运算符 2. 关系运算符 3. 逻辑运算符 4. 位运算符 5. 赋值运算符 6. 杂项运算符 ↦ sizeof & 三元 6.1 sizeof() 6.2 &取地址运算符 6.3 * 6.4 三目运算符 7. 运算符优先级 运算符是一种告诉编译器执行…

ElementUI组件:Link 文字链接

Link 文字链接 点击下载learnelementuispringboot项目源码 效果图 el-link.vue页面效果图 项目里el-link.vue文件代码 <script> export default {name: el_link }</script> <!--https://element.eleme.cn/#/zh-CN/component/link --> <template>&l…

嵌入式学习第十四天

1.结构体&#xff08;2&#xff09;: &#xff08;1&#xff09;结构体类型定义 &#xff08;2&#xff09;结构体变量的定义 &#xff08;3&#xff09;结构体元素的访问 &#xff08;4&#xff09;结构体的存储: 内存对齐: char 按照1字节对齐 …

C# OpenCvSharp DNN Gaze Estimation 视线估计

目录 介绍 效果 模型信息 项目 代码 frmMain.cs GazeEstimation.cs 下载 C# OpenCvSharp DNN Gaze Estimation 介绍 训练源码地址&#xff1a;https://github.com/deepinsight/insightface/tree/master/reconstruction/gaze 效果 模型信息 Inputs ----------------…

医院安全(不良)事件报告系统源码,不良事件处理的全过程管理,实现11大类不良事件类型的报告上报、流转审批、跟踪改进及统计分析功能。

医院安全&#xff08;不良&#xff09;事件报告系统源码&#xff0c;不良事件上报系统源码&#xff0c;PHP源码 医院安全&#xff08;不良&#xff09;事件报告系统提供11大类不良事件的上报、事件审核处理、时间按分析、事件跟踪与持续改进&#xff0c;事件提醒、权限控制、外…

聊聊DoIP吧

DoIP是啥? DoIP代表"Diagnostic over Internet Protocol",即互联网诊断协议。它是一种用于在车辆诊断中进行通信的网络协议。DoIP的目标是在现代汽车中实现高效的诊断和通信。通过使用互联网协议(IP)作为通信基础,DoIP使得诊断信息能够通过网络进行传输,从而提…

React通用后台模板

一. 项目初始化 1. 创建项目 环境 npm init vite 打开package.json,参考以下各模块版本: "dependencies": { "react": "^18.2.0", "react-dom": "^18.2.0", "react-redux": "^7.2.8", …

Security ❀ TCP异常报文详解

文章目录 1. TCP Out-Of-Order2. TCP Previous Segment Lost3. TCP Retransmission4. TCP Dup Ack XXX#X5. TCP Windows Update6. TCP Previous segment not captured7. 异常案例分析 TCP协议中seq和ack seq的联系&#xff1a; id4的http请求报文由客户端发向服务器&#xff0…

sqli-labs-master靶场训练笔记(1-22|新手村)

2024.1.21 level-1 &#xff08;单引号装饰&#xff09; 先根据提示建立一个get请求 在尝试使用单个单引号测试&#xff0c;成功发现语句未闭合报错 然后反手一个 order by 得到数据库共3列&#xff0c;-- 后面加字母防止浏览器吃掉 -- 操作&#xff08;有些会&#xff09…

maven helper 解决jar包冲突方法

一 概要说明 1.1 说明 首先&#xff0c;解决idea中jar包冲突&#xff0c;使用maven的插件&#xff1a;maven helper插件&#xff0c;它能够给我们罗列出来同一个jar包的不同版本&#xff0c;以及他们的来源&#xff0c;但是对不同jar包中同名的类没有办法。 1.2 依赖顺序 …

Spring | Spring的“数据库开发“ (Srping JDBC)

目录&#xff1a; Spring JDBC1.Spring JDBC的核心类 ( JdbcTemplate类 )2.Srping JDBC 的配置3.JdbcTemplate类的“常用方法”execute( )&#xff1a;直接执行“sql语句”&#xff0c;没有返回值update( ) &#xff1a;“增删改”&#xff0c;返回 “影响的行数”query( ) : “…

双链表的基本知识以及增删查改的实现

满怀热忱&#xff0c;前往梦的彼岸 前言 之前我们对单链表进行了非常细致的剖析&#xff0c;现在我们所面临的则是与之相对应的双链表&#xff0c;我会先告诉诸位它的基本知识&#xff0c;再接着把它的增删查改讲一下&#xff0c;ok&#xff0c;正文开始。 一.链表的种类 我…

其他发现:开源数据可视化分析工具DataEase介绍文档

一、 简介 DataEase 是开源的数据可视化分析工具&#xff0c;帮助用户快速分析数据并洞察业务趋势&#xff0c;从而实现业务的改进与优化。DataEase 支持丰富的数据源连接&#xff0c;能够通过拖拉拽方式快速制作图表&#xff0c;并可以方便地与他人分享。 二、 优势 1、 开…

STM32学习笔记二——STM32时钟源时钟树

目录 STM32芯片内部系统架构详细讲解&#xff1a; 1.芯片内部混乱电信号解决方案&#xff1a; 2.时钟树&#xff1a; 1.内部RC振荡器与外部晶振的选择 2. STM32 时钟源 3.STM32中几个与时钟相关的概念 4.时钟输出的使能及其流程 5.时钟设置的基本流程 时钟源——单片机…

Java多线程--同步机制解决线程安全问题方式二:同步方法

文章目录 一、同步方法&#xff08;1&#xff09;同步方法--案例11、案例12、案例1之同步监视器 &#xff08;2&#xff09;同步方法--案例21、案例2之同步监视器的问题2、案例2的补充说明 二、代码及重要说明&#xff08;1&#xff09;代码&#xff08;2&#xff09;重要说明 …

基于yolov2深度学习网络的视频手部检测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 输入mp4格式的视频文件进行测试&#xff0c;视频格式为1080p30. 2.算法运行软件版本 matlab2022a 3.部分核心程序 ..........................…

Linux第40步_移植ST公司的uboot

一、查看ST公司的uboot源码包 ST公司的uboot源码包在虚拟机中的路径&#xff1a; “/home/zgq/linux/atk-mp1/stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24/sources/arm-ostl-linux-gnueabi/u-boot-stm32mp-2020.01-r0”&#xff1b; “u-boot-stm32mp-2020.01-r0”就是S…

Github 上传项目(个人令牌token)

1.点击 github头像 &#xff1a; setting -> Developer Settings -> Personal access tokens 2.在要上传的文件夹下运行以下命令&#xff1a; git init git commit -m "first commit" git branch -M main 利用以下命令模…