当前位置: 首页 > news >正文

基于PyQt5的UI界面开发——对基本控件的介绍

基本控件介绍

在PyQt中,控件是用户界面上的可见元素。控件可以包括按钮、标签、文本框、进度条等。每个控件都有自己的属性和方法,可以通过编程方式进行调整和操作。

以下是一些常用的PyQt控件:

  1. QLabel(标签):用于显示文本或图片的静态控件。
  2. QPushButton(按钮):用于触发特定动作或响应事件的按钮。
  3. QLineEdit(文本框):用户可以在其中输入或编辑文本。
  4. QRadioButton(单选按钮):用于从几个选项中选择一个。
  5. QCheckBox(复选框):用于从多个选项中进行多选。
  6. QSlider(滑块):用于调整值的控件,如音量或亮度。
  7. QProgressBar(进度条):用于显示任务的进度。
  8. QComboBox(组合框):用于从下拉菜单中选择一个选项。
  9. QTextEdit(文本编辑器):用于多行文本的输入和显示。
  10. QTableWidget(表格):以表格形式展示和编辑数据。

属性修改

在Qt中所有的控件其实都为QWidget的子类,对控件的一些修改,都可以在这里修改:

控件类型

控件类型,总体上可以分类如下:

输入控件:

  • 按钮:QPushButton(按键按钮),QToolButton(工具按钮),QRadioButton(单选框),QCheckButton(多选框),QCommandLinkButton(连接命令的按钮)
  • 键盘输入控件:QlineEdit(单行输入),QTextEdit(多行输入),QPlainTextEdit(普通多行输入),QkeySequenceEdit(快捷键输入)
  • 调节输入控件:QAbstractSpinBox(步长调节输入),QDateEdit(日期输入),QTimeEdit(时间输入),QDateTimeEdit(日期和时间输入)
  • 数字调节框控件:QSpinBox(整型数字调节框),QDoubleSpinBox(浮点数字调节框)
  • 滑动输入控件:QDial(旋转拖滑输入),QSlider(直线拖动输入),QScrollBar(滚动条),QRubberBand(橡皮筋拖拽)
  • 下拉输入控件:QComboBox(组合框下拉选项),QSlider(直线拖动输入),QScrollBar(滚动条),QRubberBand(橡皮筋拖拽)
  • 对话框输入控件:QDialog(对话框),QColorDialog(颜色对话框),QFileDialog(文件对话框),QFontDialog(字体对话框),QInputDialog(输入对话框)
  • 日历控件:QCalendarWidget(日期选择部件)

显示控件:

  • 内容显示控件:QLabel(显示框),QLCDNumber(液晶显示器),QProgressBar(进度条)
  • 对话框显示控件:QMessageBox(信息提示框),QErrorMessage(错误提示框),QProgressDialog(进度提示框)

高级控件:

  • 容器控件:QToolBox,QDialogButtonBox,QGroupBox,QMdiSubWindow
  • 结构控件:QMainWindow,QTabwidget,QStackedWidget,QSplitter,QDockWidget
  • 滚动控件:QTextBrowser,QScrollArea,QAbstractItemView,QMdiarea,QGraphicsView
  • 辅助控件:QFocusFrame,QSizeGrip,QDesktopWidget

按钮控件介绍

按钮是最常用的控件,这里我们来介绍一下Buttons下的控件:

PushButton(按键按钮),QToolButton(工具按钮),QRadioButton(单选框),QCheckButton(多选框),QCommandLinkButton(连接命令的按钮)。QDialogButtonBox(标准按钮盒)

按钮控件的属性:

上面有很多通过名字就能理解,这里我们补充一些,shortcut用于设置快捷键,checkable设置是否自动切换按钮,checked设置默认选中状态,autoRepeat设置是否会在用户按下时自动重复,autoExclusive设置是否启用自动排他性(设置多选框)。

按钮控件的信号触发条件:

  1. clicked():当按钮被第一次按下然后释放时发出信号
  2. clicked(bool):当按钮被第一次按下然后释放时发出信号,并将当前状态传递给外界
  3. pressed():当鼠标光标在按钮内时,按下鼠标左键发出信号
  4. released():当释放鼠标左键时发出信号
  5. toggled(bool):按钮的状态发生变化时发出信号,并将当前状态传递给外界
  • 在Qt界面设计中,我们最常使用QPushButton,可以设置快捷键方便使用。
  • QToolButton(工具按钮)通常用于工具栏,一般在创建QAction实例时一并创建。工具按钮常常显示一个图标,以便快速访问特定的命令或选项。
  • QRadioButton(单选框),它是一个带有文本标签的单选按钮,可以被选中(打开)或者取消选中(关闭)。当单选框被选中或取消选中时,会触发“toggled()”信号,我们可以通过连接槽函数来执行相应的操作。单选框的作用是实现“多选一”的选择。
  • QCheckBox(复选框)也是一个常用的按钮控件,带有文本标签,并可以被选中(打开)或取消选中(关闭),还提供了半选状态(可选项)。复选框被选中或取消选中时,会发出“stateChanged()”信号,我们可以通过连接槽函数来响应这些状态变化。与单选框不同,复选框提供了“多选多”的选择。
  • QCommandLinkButton(连接命令的按钮),它的外观类似于扁平化的QPushButton,并且自带了一个向右的箭头图标。它与单选按钮类似,适用于一组互斥选项之间进行选择。
  • QDialogButtonBox(标准按钮盒),它提供一系列标准按钮,可以水平或垂直布置,常用于对话框和消息框。Qt定义的标准按钮包括Yes、No、OK、Cancel、Ignore、Open、Save、Close、Apply、Help等等,当然用户也可以自定义添加其他按钮。

输入控件

左侧工具栏中的"Input Widget"下,可用于

文本输入的有QlineEdit(单行输入)、QTextEdit(多行输入)、QPlainTextEdit(普通多行输入);

数字输入控件有QSpinBox(整型数据输入)、QDoubleSpinBox(浮点数据输入);

调节输入控件:QAbstractSpinBox(步长调节输入)、QDateEdit(日期输入)、QTimeEdit(时间输入)、QDateTimeEdit(日期和时间输入)。

文本输入控件

  • QLineEdit 控件是一个单行文本编辑器, 允许用户输入和编辑单行文本,并支持撤消、重做、剪切、粘贴及拖放功能。
  • QTextEdit适用于段落和字符。可以显示图像,列表和表格。如果文本太大而无法在文本编辑的视口中查看,则会出现滚动条。TextEdit不仅可以显示文本,还可以显示HTML文档。
  • QPlainTextEdit 控件是一个多行的纯文本编辑器,允许用户输入和编辑多行纯文本,不支持表格或嵌入帧。针对纯文本的处理进行了优化,可以处理更大的文档和更快速的响应。

调节输入控件

  • QAbstractSpinBox 将所有步长调节器的通用的功能抽象出了一个父类,也可以直接实例化使用。QAbstractSpinBox包含了一个QLineEdit和两个QPushbutton,数据的更改可以通过点击按钮或使用键盘输入。
  • QDateEdit 控件用于编辑日期,QTimeEdit 控件用于编辑时间,QDateTimeEdit同时编辑日期时间的控件。可以使用键盘上的上下键头按钮来增加或减少日期、时间。
  • QSpinBox 是一个计数器控件,允许用户选择一个整数通过上下按键递增或者递减,也可以直接输入整数的数值。默认取值范围为 0-99,每次调节的步长为 1。
  • QDoubleSpinBox 是浮点数据计数器控件,用于处理浮点数值。默认精度为 2位小数。

相关文章:

基于PyQt5的UI界面开发——对基本控件的介绍

基本控件介绍 在PyQt中,控件是用户界面上的可见元素。控件可以包括按钮、标签、文本框、进度条等。每个控件都有自己的属性和方法,可以通过编程方式进行调整和操作。 以下是一些常用的PyQt控件: QLabel(标签)&#…...

flink 报错:Caused by: java.lang.RuntimeException: Assigned key must not be null!

问题描述 不同情况下需要找对应的解决方法,这里介绍的解决方法不能拓展到别的场景。 场景描述: flink job 的开发过程中遇到这样的需求,需要先 map 处理,然后把返回的 DataStream 作为输入,流入别的 map 中。这里我们遇…...

AN OVERVIEW OF LANGUAGE MODELS RECENT DEVELOPMENTS AND OUTLOOK

LLM系列相关文章,针对《AN OVERVIEW OF LANGUAGE MODELS: RECENT DEVELOPMENTS AND OUTLOOK》的翻译。 语言模型综述:近年来的发展与展望 摘要1 引言2 语言模型的类型2.1 结构化LM2.2 双向LM2.3 置换LM 3 语言单元3.1 字符3.2 单词和子单词3.2.1 基于统…...

ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升

专题一 空间数据获取与制图 1.1 软件安装与应用讲解 1.2 空间数据介绍 1.3海量空间数据下载 1.4 ArcGIS软件快速入门 1.5 Geodatabase地理数据库 专题二 ArcGIS专题地图制作 2.1专题地图制作规范 2.2 空间数据的准备与处理 2.3 空间数据可视化:地图符号与注…...

fastapi初使用,构建自己的api

文章目录 1、安装2、api实现2.1、 app.get("/1")2.2、app.get("/{a}")2.3、app.get("/{a}{b}")2.4、函数和api分离 3、运行 原文链接:https://wangguo.site/posts/d98bb3c9.html fastapi 是一个基于 Python 的 API 构建框架&#xff…...

Html基础知识学习——圣杯布局、margin负值、等高布局(十七)

文章目录 圣杯布局margin负值等高布局 圣杯布局 两边页面固定中间页面宽度随着浏览器大小自适应 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-widt…...

从一长串字符串中找出图片,查看是否符合md5要求

/**检查内容中的图片否含有外部链接*/ function checkExternalLinks(content){var pattern /<img[^>]src["]([^"])["][^>]*>/g;var match;var index 0;while ((match pattern.exec(content)) ! null) {var imageUrl match[1];var regex /\/sto…...

新手小白如何学好UI设计?一般学多久? 优漫动游

学习UI设计首先就是软件&#xff1a;PS、AI、CDR等但是掌握了软件不等于就掌握了UI设计&#xff0c;设计的思维也是很重要的网上很多关于UI设计的教程视频&#xff0c;可以多去看看 广州平面设计培训 要多久这个看个人的学习能力吧&#xff0c;有些人天资聪慧&#xff0c;很快…...

实现 Rollup 插件alias 并使用vitest提高开发效率

本篇文章是对 实现 Rollup 插件 alias | 使用 TypeScript 实现库的基本流程 | 使用单元测试提高开发效率 的总结。其中涉及到开发一个组件库的诸多知识点。 实现一个经常用的 rollup 插件 alias 首先执行npm init命令初始化一个package.json文件&#xff0c;因为插件使用了ty…...

【DSL】ES+DSL 查询语法

【DSL】ESDSL 查询语法 一、前言二、定义1.基本介绍2.语法说明&#xff08;1&#xff09;关键字(Keywords)&#xff08;2&#xff09;标识符(Identifiers)&#xff08;3&#xff09;表达式(Expressions)&#xff08;4&#xff09;运算符(Operators)&#xff08;5&#xff09;函…...

Vue第三篇:最简单的vue购物车示例

本文参考&#xff1a;Vue Cli&#xff08;脚手架&#xff09;实现购物车小案例 - - php中文网博客 效果图&#xff1a; 编写流程&#xff1a; 1、首先通过vue/cli创建工程 vue create totalprice 2、改写App.vue代码如下&#xff1a; <template><div><div v…...

MFC 基于数据库的管理系统

文章目录 初始化设置菜单 添加数据库类创建数据库配置数据库 全部代码 初始化 创建文件选择基于CListView 初始化数据 public:CListCtrl& m_list;CSQLView::CSQLView() noexcept:m_list(GetListCtrl()) {// TODO: 在此处添加构造代码}void CSQLView::OnInitialUpdate() {C…...

EfficientNet论文笔记

EfficientNet论文笔记 通过NAS平衡了channel&#xff0c;depth&#xff0c;resolution&#xff0c;发现在相同的FLOPs下&#xff0c;同时增加 depth和 resolution的效果最好。 数据集效果小于resolution怎么办&#xff1f; EfficientNet—b0框架 表格中每个MBConv后会跟一个…...

系统学习Linux-SSH远程服务(二)

概念 安全外壳协议&#xff0c;提供安全可靠的远程连接 特点 ssh是工作在传输层和应用层的协议 ssh提供了一组管理命令 ssh 远程登陆 scp 远程拷贝 sftp 远程上传下载 ssh-copy-id ssh keygen 生成 提供了多种身份验证机制 身份验证机制 密码验证 需要提供密码 密…...

PyTorch训练RNN, GRU, LSTM:手写数字识别

文章目录 pytorch 神经网络训练demoResult参考来源 pytorch 神经网络训练demo 数据集&#xff1a;MNIST 该数据集的内容是手写数字识别&#xff0c;其分为两部分&#xff0c;分别含有60000张训练图片和10000张测试图片 图片来源&#xff1a;https://tensornews.cn/mnist_intr…...

基于深度学习的高精度道路瑕疵检测系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度道路瑕疵&#xff08;裂纹&#xff08;Crack&#xff09;、检查井&#xff08;Manhole&#xff09;、网&#xff08;Net&#xff09;、裂纹块&#xff08;Patch-Crack&#xff09;、网块&#xff08;Patch-Net&#xff09;、坑洼块&#x…...

【裸辞转行】是告别,也是新的开始

一年多了没有更新&#xff0c;是因为去年身体加心理因素辞职了&#xff0c;并且大概率不会再做程序员了&#xff0c;嗯。本来觉得可能再也不会打开 CSDN 了&#xff0c;想了想&#xff0c;还是来做个告别吧&#xff0c;任何事情都该有始有终才对。 回忆碎碎念 是在去年的 11 …...

了解交换机接口的链路类型(access、trunk、hybrid)

上一个章节中讲到了vlan的作用及使用&#xff0c;这篇了解一下交换机接口的链路类型和什么情况下使用 vlan在数据包中是如何体现的&#xff0c;在上一篇的时候提到测试了一下&#xff0c;从PC1去访问PC4的时候&#xff0c;只从E0/0/2发送给了E0/0/3这是&#xff0c;因为两个接…...

Android系统启动流程分析

当按下Android系统的开机电源按键时候&#xff0c;硬件会触发引导芯片&#xff0c;执行预定义的代码&#xff0c;然后加载引导程序(BootLoader)到RAM&#xff0c;Bootloader是Android系统起来前第一个程序&#xff0c;主要用来拉起Android系统程序&#xff0c;Android系统被拉起…...

如何在Ubuntu上安装OpenneBula

OpenNebula是一个开源云计算平台&#xff0c;允许我们在完全虚拟化云中组合和管理VMware和KVM虚拟机 第1步&#xff1a;安装MariaDB数据库服务器 OpenNebula还需要一个数据库服务器来存储其内容。 安装MariaDB&#xff1a; 1 2 sudo apt update sudo apt install mariadb-s…...

Visual Studio 中的 MD、MTD、MDD、MT 选项详解

在Visual Studio中开发C++项目时,正确选择运行时库(runtime library)对于确保应用程序的性能、稳定性和兼容性至关重要。本文将详细介绍/MD, /MT, /MDd, 和 /MTd这些编译器选项的意义、应用场景及其区别。 MSVCRT.dll MSVCRT.dll 是 Microsoft Visual C++ Runtime Library …...

Redux 实践与中间件应用

Redux 异步处理的挑战 Redux 核心设计是同步的、单向数据流&#xff0c;但现代应用中异步操作无处不在。Redux 中间件填补了这一缺口&#xff0c;专门解决异步流程管理、副作用隔离等复杂场景。 中间件架构原理 中间件位于 action 被发起之后、到达 reducer 之前&#xff0c…...

Linux常用命令学习手册

Linux常用命令学习手册https://download.csdn.net/download/2401_87690752/90953550 《Linux常用命令学习手册》提供了一份实用的Linux操作指南&#xff0c;主要收录了系统管理和文件操作等基础命令。内容涵盖了目录切换、文件查看、权限设置等核心功能&#xff0c;适合Linux初…...

C语言 标准I/O函数全面指南

C标准I/O函数全面指南 本指南详细介绍了C语言中用于文件操作的标准输入/输出函数&#xff0c;包括单字符I/O、字符串I/O、格式化I/O、块I/O以及文件光标操作。每个部分包含函数定义、使用说明和实用示例&#xff0c;适合学习、复习以及博客发布。内容采用清晰的Markdown格式&a…...

Android协程学习

目录 Android上的Kotlin协程介绍基本概念与简单使用示例协程的高级用法 结构化并发线程调度器(Dispatchers)自定义调度器并发:同步 vs 异步 异步并发(async 并行执行)同步顺序执行协程取消与超时 取消机制超时控制异步数据流 Flow协程间通信 使用 Channel使用 StateFlow /…...

【基于阿里云搭建数据仓库(离线)】Data Studio创建资源与函数

Data Studio支持在您的数据分析代码中引用自定义的资源和函数&#xff08;支持MaxCompute、EMR、CDH、Flink&#xff09;&#xff0c;您需要先创建或上传资源、函数至目标工作空间&#xff0c;上传后才可在该工作空间的任务中使用。您可参考本文了解如何使用DataWorks可视化方式…...

gateway 网关 路由新增 (已亲测)

问题&#xff1a; 前端通过gateway调用后端接口&#xff0c;路由转发失败&#xff0c;提示404 not found 排查&#xff1a; 使用 { "href":"/actuator/gateway/routes", "methods":[ "POST", "GET" ] } 命令查看路由列表&a…...

Vue.js应用结合Redis数据库:实践与优化

一、概述 Vue.js是一个用于构建用户界面的渐进式JavaScript框架&#xff0c;适用于开发单页面应用&#xff08;SPA&#xff09;。Redis是一个高性能的内存数据结构存储&#xff0c;用作数据库、缓存和消息中间件。将Vue.js与Redis结合&#xff0c;可以实现高效的数据管理和快速…...

网络安全面试题目(无答案)

一、渗透测试与漏洞挖掘 如何绕过WAF进行SQL注入&#xff1f;列举三种技术并解释原理。 答案要点&#xff1a; 分块传输编码&#xff08;Chunked Transfer&#xff09;绕过正则检测 畸形HTTP参数&#xff08;如参数污染、Unicode编码&#xff09; 利用WAF规则盲区&#xff08…...

HTTP(超文本传输协议)详解

目录 一、基本概念 二、HTTP报文&#xff08;结构&#xff09; (一) 请求报文 (二) 响应报文 三、HTTP请求方法 1. GET方法 2. POST方法 3. PUT方法 4. HEAD方法 5. DELETE 6. OPTIONS 一、知识扩展 7. TRACE 8. CONNECT 四、HTTP持久通信 (一) HTTP keep-alive…...