【pyqt5学习】——QToolTip,QLabel控件,伙伴关系

目录

0、学习资源

1、给控件设置提示信息——QToolTip

2、QLabel控件(显示图像、设置超链接、信号绑定)

3、QLabel伙伴关系

1)代码

 2)效果

3)知识点addWidget


0、学习资源

PyQt5教程,来自网易云课堂_哔哩哔哩_bilibilihttps://study.163.com/pycharm+pyqt5视频来自网易云课堂https://www.bilibili.com/video/BV154411n79k

1、给控件设置提示信息——QToolTip

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2022/5/17 21:02
# @Author  : @linlianqin
# @Site    : 
# @File    : 给控件添加信息提示.py
# @Software: PyCharm
# @description:from PyQt5.QtWidgets import QMainWindow,QToolTip,QPushButton,QHBoxLayout,QWidget,QApplication
from PyQt5.QtGui import QFontclass messageTipLearn(QMainWindow):def __init__(self):super(messageTipLearn,self).__init__()# 设置一个按钮self.button = QPushButton()self.button.setText("信息提示")# 设置一个横向布局self.hLayout = QHBoxLayout()# 设置一个窗口self.widget = QWidget()# 将按钮放在布局中self.hLayout.addWidget(self.button)# 将布局放在窗口self.widget.setLayout(self.hLayout)# 将窗口添加到界面上self.setCentralWidget(self.widget)# 设置提示信息的格式QToolTip.setFont(QFont("SanSerif",12))# 设置提示内容self.button.setToolTip("这是一个按钮")# 设置提示信息显示的时长,5sself.button.setToolTipDuration(5000)if __name__ == '__main__':import sysapp = QApplication(sys.argv)win = messageTipLearn()win.resize(300,300)win.setWindowTitle("信息提示学习")win.show()sys.exit(app.exec_())

2、QLabel控件(显示图像、设置超链接、信号绑定)

QLabel控件有两个信号,前提都是label控件上面的内容为超链接文本

一个信号是划过label上面的链接时触发:linkhovered

一个信号是点击label上面的链接时触发:linkActivated

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2022/5/17 21:37
# @Author  : @linlianqin
# @Site    : 
# @File    : QLabelDemo.py
# @Software: PyCharm
# @description:from PyQt5.QtWidgets import QMainWindow,QToolTip,QLabel,QVBoxLayout,QWidget,QApplication
from PyQt5.QtGui import QFont,QPixmap
from PyQt5.QtCore import Qtclass labelDemo(QWidget):def __init__(self):super(labelDemo, self).__init__()self.InitUi()def InitUi(self):# 创建四个label控件## label1标题栏,居中显示label1 = QLabel()label1.setText("这是一个label标签控件演示程序")label1.setAlignment(Qt.AlignCenter)## label2创建链接label2 = QLabel()label2.setText("<a href='#'>欢迎使用Python GUI Label 控件</a>")## label3显示图像label3 = QLabel()label3.resize(100,300)label3.setScaledContents(True)  # 设置图像自适应控件大小label3.setPixmap(QPixmap("./1.jpg"))## label4显示超链接label4 = QLabel()label4.setOpenExternalLinks(True)label4.setText("<a href='http:www.baidu.com'>进入百度搜索</a>")# 布局self.vlayout = QVBoxLayout()self.vlayout.addWidget(label1)self.vlayout.addWidget(label2)self.vlayout.addWidget(label3)self.vlayout.addWidget(label4)self.setLayout(self.vlayout)label2.linkHovered.connect(self.hoverLabelSlot)label4.linkActivated.connect(self.clickedLabelSlot)# 划过label上面链接触发def hoverLabelSlot(self):print("划过label控件触发的事件")# label上链接点击触发事件def clickedLabelSlot(self):print("点击label控件触发的事件")if __name__ == '__main__':import sysapp = QApplication(sys.argv)win = labelDemo()win.resize(300,300)win.setWindowTitle("label控件学习")win.show()sys.exit(app.exec_())

 

3、QLabel伙伴关系

伙伴关系其实就是通过一个控件来控制另一个控件,比如一个登陆界面,需要输入用户名和密码,通常我们需要用鼠标或者触摸屏来点击输入框后再进行输入,这样再输入用户名后又得进行鼠标或者触摸屏的操作,当输入框繁多的时候,这种操作就会显得非常的繁琐,而通过设置伙伴关系,通过键盘的组合键就可以实现定位到指定的输入框进行输入

Windows系统下通过Alt+指定字母键来实现。

具体可以参考文章:

PyQt5之设置控件之间的伙伴关系_Anony吧的博客-CSDN博客_pyqt5 伙伴关系PyQt5之设置控件之间的伙伴关系伙伴关系:设置两个控件之间的关联,通过一个控件控制另一个控件。1、首先选择在Widget Box中拖入一个Frame属性放在窗口中,再往窗口中添加Label、Line Edit属性,并且修改Label属性的显示值,在这里我采用容器布局管理,对整个Frame容器使用表单布局,效果图如下:2、向每个Label属性添加热键(&A)、(&B)、(&C),如下图:热键:又叫快捷键,通过操控键盘的特点键来快速完成指定的操作,代替了鼠标的繁琐移动。https://blog.csdn.net/qq_44880255/article/details/106365681

1)代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2022/5/20 16:10
# @Author  : @linlianqin
# @Site    : 
# @File    : QLabelBuddy伙伴关系.py
# @Software: PyCharm
# @description:from PyQt5.QtWidgets import QDialog,QLabel,QLineEdit,QPushButton,QGridLayout,QApplicationclass QLabelBuddy(QDialog):def __init__(self):super(QLabelBuddy, self).__init__()self.InitUI()# 初始化界面def InitUI(self):self.setWindowTitle("QLabel控件伙伴关系")# 创建label和lineEditlabel1 = QLabel("用户名(&A):",self)lineEdit1 = QLineEdit(self)# 设置二者伙伴关系label1.setBuddy(lineEdit1)# 创建label和lineEditlabel2 = QLabel("密码(&B):",self)lineEdit2 = QLineEdit(self)# 设置二者伙伴关系label2.setBuddy(lineEdit2)# 创建按钮btn1 = QPushButton("登录")btn2 = QPushButton("退出")# 创建栅格布局,将控件放在布局里面mainLayout = QGridLayout(self)mainLayout.addWidget(label1,0,0) # 将控件label1放置在第一行第一列mainLayout.addWidget(lineEdit1,0,1,1,2) # 将控件lineEdit控件放在第一行第二列,并且占一行两列的大小位置mainLayout.addWidget(label2,1,0) # 将控件label1放置在第一行第一列mainLayout.addWidget(lineEdit2,1,1,1,2) # 将控件lineEdit控件放在第一行第二列,并且占一行两列的大小位置mainLayout.addWidget(btn1,2,1) # 将控件label1放置在第一行第一列mainLayout.addWidget(btn2,2,2) # 将控件lineEdit控件放在第一行第二列,并且占一行两列的大小位置if __name__ == '__main__':import sysapp = QApplication(sys.argv)demoWin = QLabelBuddy()demoWin.show()sys.exit(app.exec_())

 2)效果

这里通过

Alt+A可以将光标定位在用户名的输入框中

Alt+B可以将光标定位在密码的输入框中 

其实可以理解为快捷键或热键

3)知识点addWidget

1、往栅格布局里面加控件

addWidget(需要添加的控件名,布局的第几行**索引从0开始**,第几列,大小占几行,占几列)

2、setBuddy——将两个控件设置伙伴关系

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

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

相关文章

SylixOS中select原理及使用分析

2019独角兽企业重金招聘Python工程师标准>>> 1. select接口简介 1.1 select接口使用用例 select是操作系统多路I/O复用技术实现的方式之一。 多路I/O复用技术大致使用场景为&#xff1a;构造一张感兴趣的文件描述符列表&#xff0c;然后调用多路复用的IO接口&#x…

【pyqt5学习】——QLineEdit学习(回显模式)

目录 1、回显模式 2、成果显示 3、知识点 1&#xff09;FormLayout布局添加addRow方法 2&#xff09;在输入框显示灰色提示字体&#xff0c;输入内容时消失setPlaceholderText 3&#xff09;设置回显模式setEchoMode 4、完整代码 1、回显模式 QLineEdit控件的主要功能是输…

【pyqt5学习】——QLineEdit控件输入校验器Validator、掩码setInputMask限制输入、textChanged信号

目录 1、输入校验器——限制输入框输入的内容 1&#xff09;校验器类型——整数、浮点数、数字字母结合&#xff08;正则&#xff09; 2&#xff09;步骤 3&#xff09;结果 ​编辑 ​编辑 4&#xff09;完整代码 2、利用掩码进行输入的限制 0&#xff09;掩码对照表 1…

PyOpenCL图像处理:Box模糊

为什么80%的码农都做不了架构师&#xff1f;>>> # -*- coding: utf-8 -*-from __future__ import absolute_import, print_function import numpy as np import pyopencl as cl import cv2 from PIL import Imagedef RoundUp(groupSize, globalSize): r globalSi…

MySQL日志分类及性能分析你应该知道的知识

为什么80%的码农都做不了架构师&#xff1f;>>> MySQL日志记录了MySQL数据库日常操作和错误信息&#xff0c;MySQL总共有四种类型的日志&#xff0c;通过分析这些日志可以查询到MySQL的运行情况、用户操作、错误信息等&#xff0c;可以为MySQL的管理和优化提供必要…

android基础组件----Button的使用

按钮由文本或图标&#xff08;或文本和一个图标&#xff09;组成&#xff0c;当用户触摸到它时&#xff0c;会发生一些动作。今天我们开始Button的学习。少年的爱情永远不够用&#xff0c;一杯酒足以了却一件心事。 Button的简要说明 根据你是否想要一个带有文本的按钮&#xf…

【pyqt5学习】——QTextEdit控件学习:获取文本、添加文本

目录 1、QTextEdit控件介绍 2、QTextEdit控件添加文本、添加HTML格式 3、QTextEdit控件获取文本、获取HTML格式文本 4、案例 1&#xff09;完整代码 2&#xff09;效果 1、QTextEdit控件介绍 QTextEdit控件是一个支持多行输入的输入框&#xff0c;支持HTML进行格式的设置 2…

空间变化

空间变化 第一种&#xff1a;圆 第二种: 矩形 第三种&#xff1a;正五边形 第四种:正六边形 第五种&#xff1a;腰圆 算法&#xff1a; 在规则图形&#xff08;不包括圆心-直径法&#xff09;中&#xff0c;等于或者超过三个点。一般的&#xff0c;利用p1,p2,p3来建立一个用户…

【pyqt5学习】——QAbstractButton学习(普通按钮QPushButton、工具按钮QToolButton、单选按钮QRadioButton、复选框按钮QCheckBox)

目录 1、按钮介绍 2、普通按钮QPushButton学习 1&#xff09;特殊模式——开关按钮&#xff08;toggle&#xff09; ①将按钮设置为可选择的 ②将按钮按下 判断按钮是否被按下 isChecked() 2&#xff09;给按钮设置前置图标setIcon() ​编辑 3&#xff09;按钮信号 4)完…

挖财后端架构简介

挖财后端技术用的主要是比较大众的东西&#xff0c;Web容器用Tomcat&#xff0c;框架主要是Spring MVC&#xff0c;也有少量的Play&#xff0c;中间服务层是Dubbo&#xff0c;微容器用Spring Boot&#xff0c;服务注册这一块是用ZooKeeper&#xff0c;核心业务开发方式还是围绕…

【pyqt5学习】——QcomboBox学习

目录 1、添加条目&#xff1a; 1)逐一添加 2&#xff09;批量添加 3&#xff09;获取当前选中的索引 4&#xff09;获取当前选中文本 5&#xff09;根据索引获取文本 6&#xff09;统计条目总数 7&#xff09;信号——当前选中的索引发生改变currentIndexChanged() 2、…

vSphere Client 编辑虚拟机属性的问题

vSphere Client 编辑虚拟机属性的问题 编辑虚拟机属性的时候&#xff0c; 出现&#xff1a; vpxclient.vmconfig.cpuid 初始值设置异常之类的&#xff0c;重置了&#xff0c; 并将注册表中的所有vmvare 相关键值删除了&#xff0c; 还是一样的。。 后面参照https://kb.vmware.c…

【pyqt5学习】—— 滑动条Qslider、计数器QSpinBox学习

目录 1、滑动条QSlider 1)常用属性 2&#xff09;实例——利用滑动条来实现字体大小的修改 ​编辑 2、计数器QSpinBox 1&#xff09;属性方法 2&#xff09;实例 1、滑动条QSlider 1)常用属性 self.slider QSlider(Qt.Horizontal)# 设置最小值self.slider.setMinimum(2)…

【pyqt5学习】——对话框QDialog学习(QMessageBox、QColorDialog、QFIleDialog、QFontDialog、QInputDialog)

目录 1、对话框QDialog类别 2、通用对话框 ​编辑 3、消息对话框QMessageBox() 1&#xff09;消息对话框QMessageBox类型 2&#xff09;案例 ​编辑 4、输入对话框QInputDialog 1) 类型 2&#xff09;案例 5、字体格式对话框QFontDialog 6、颜色对话框QColorDialog 1&…

使用 Mesos 管理虚拟机

摘要 为了满足渲染、基因测序等计算密集型服务的需求&#xff0c;UCloud 推出了“计算工厂”产品&#xff0c;让用户可以快速创建大量的计算资源&#xff08;虚拟机&#xff09;。该产品的背后&#xff0c;是一套基于 Mesos 的计算资源管理系统。本文简要介绍该系统的结构、Mes…

Val编程-套接字

套接字的介绍&#xff1a;http://zh.wikipedia.org/wiki/Berkeley%E5%A5%97%E6%8E%A5%E5%AD%97 主要分为客户端和服务器。客户端一般是需要主动去链接&#xff0c;需要配置服务器的IP和端口。服务器是被动响应&#xff0c;需要打开相应的端口。端口一般不推荐使用系统端口和常用…

【pyqt5学习】——Qpainter控件学习(文本、图像、各种图形)

目录 1、作用及应用步骤 2、绘制文本drawText() 3、像素级别绘制点&#xff08;正弦曲线为例&#xff09; 4、绘制不同样式的直线 5、绘制弧形、圆形、扇形、图像等 6、画刷填充区域QBrush 1、作用及应用步骤 QPainter是一个用于绘制的类&#xff0c;该类可以用于绘制&…

反向代理与Real-IP和X-Forwarded-For(转)

如下图所示&#xff0c;客户端通过Nginx Proxy1 和 Nginx Proxy2 两层反向代理才访问到具体服务Nginx Backend&#xff08;或如Tomcat服务&#xff09;。那Nginx Backend如何才能拿到真实客户端IP呢&#xff1f; 接下来我们来看看如何才能获取到客户端真实IP。 场景1  场景1是…

Android studio打开之后 cannot load project: java.lang.NUllpointerException

参考来源&#xff1a;http://bbs.csdn.net/topics/391014393 关闭网络&#xff0c;重新打开Android studio就好了。&#xff08;但是原因不清楚是为什么&#xff1f;&#xff09; Internal error. Please report to http://code.google.com/p/android/issuescom.intellij.ide.p…

Val编程-任务编程

不同任务之间可以通过一个标志符来实现互斥事件。 程序代码&#xff1a; Task2 <span style"font-size:12px;">beginwhile truewait(bTaskFlag)cls()gotoxy(1,1)put("这是Task2")gotoxy(1,2)if bTaskFlagput("BFlag:true ")elseput(&…