PyQt5基本窗口控件(三)QLabel
发布时间:2023-01-09 21:24:34 401
相关标签: # python
(PyQt5基本窗口控件(三)QLabel)
三、QLabel(标签)
- QLabel对象,作为一个占位符可以显示不可编辑的文本或图片,是其他控件的提示标记,即标签。
- QObject----------- | QPaintDevice------ | QWidget------- | QFrame-------- | ------QLabel
1、QLabel类中的常用方法
- 如下表:
2、QLabel类中的常用信号
- 如下表:
信号 | 描述 |
---|---|
linkActivated | 当单击标签中嵌入的超链接,希望在新窗口打开时,setOpenExternalLinks特性必须为True |
linkHovercd | 当鼠标指针滑过标签中嵌入的超链接时,需要用槽函数与这个信号进行绑定 |
- 案例
# -*- coding:utf-8 -*-
"""
# @Time:2022/12/8 0008 11:44
# @Author:晚秋拾叶
# @File:qt04_QLabel.py
# Python之PyCharm
"""
from PyQt5.QtWidgets import QApplication, QLabel, QWidget, QVBoxLayout
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap, QPalette
import sys
class WindowDemo(QWidget):
def __init__(self):
super().__init__()
label1 = QLabel(self)
label2 = QLabel(self)
label3= QLabel(self)
label4 = QLabel(self)
# 1 初始化标签控件
label1.setText("这是一个文本标签")
label1.setAutoFillBackground(True)
palette = QPalette()
palette.setColor(QPalette.Window, Qt.yellow)
label1.setPalette(palette)
label1.setAlignment(Qt.AlignCenter)
label2.setText("欢迎使用Python GUI应用")
label3.setAlignment(Qt.AlignCenter)
label3.setToolTip("这是一个图片标签")
label3.setPixmap(QPixmap("./images/002.jpeg"))
label4.setText(""
"欢迎朝兮暮兮的编程空间")
label4.setAlignment(Qt.AlignRight)
label4.setToolTip('这是一个超链接标签')
# 2 在窗口布局中添加控件
vbox = QVBoxLayout()
vbox.addWidget(label1)
vbox.addStretch() # addStretch()函数用于在控件按钮间增加伸缩量
vbox.addWidget(label2)
vbox.addStretch()
vbox.addWidget(label3)
vbox.addStretch()
vbox.addWidget(label4)
# 3 允许label1控件访问超链接
label4.setOpenExternalLinks(True) # 默认值False,想要访问就写True
# 点击文本框绑定槽事件
label4.linkActivated.connect(self.link_clicked)
label1.setTextInteractionFlags(Qt.TextSelectableByMouse)
self.setLayout(vbox)
self.setWindowTitle("QLabel例子")
def link_hovered(self):
print("当鼠标滑过label2标签时,触发事件。")
def link_clicked(self):
print("当鼠标点击label4标签时,触发事件。")
if __name__ == '__main__':
app = QApplication(sys.argv)
win = WindowDemo()
win.show()
sys.exit(app.exec_())
- 代码分析
-
设置文本标签居中显示
label.setAlignment(Qt.AlignCenter)
-
打开外部链接 定义网址链接并标注文字说明,再打开setOpenExternalLinks()的参数为True,再根据触发,调用槽函数link_clicked(),不过这里不带“()”。
-
label4 = QLabel(self)
label4.setText("欢迎朝兮暮兮的编程空间")
# 3 允许label1控件访问超链接
label4.setOpenExternalLinks(True) # 默认值False,想要访问就写True
# 点击文本框绑定槽事件
label4.linkActivated.connect(self.link_clicked)
- 效果如图
案例八 QLabel标签快捷键的使用
# -*- coding:utf-8 -*-
"""
# @Time:2022/12/8 0008 13:01
# @Author:晚秋拾叶
# @File:qt04_QLabel_setBuddy.py
# @PyCharm之Python
"""
from PyQt5.QtWidgets import *
import sys
class QlabelDemo(QDialog):
def __init__(self):
super().__init__()
self.setWindowTitle("QLabel例子")
nameLbl1 = QLabel('&Name', self)
nameEdl1 = QLineEdit(self)
nameLbl1.setBuddy(nameEdl1)
nameLbl2 = QLabel('&Password', self)
nameEbl2 = QLineEdit(self)
nameLbl2.setBuddy(nameEbl2)
btnOk = QPushButton('&OK')
btnCancel = QPushButton('&Cancel')
mainLayout = QGridLayout(self)
mainLayout.addWidget(nameLbl1, 0, 0)
mainLayout.addWidget(nameEdl1, 0, 1, 1, 2)
mainLayout.addWidget(nameLbl2, 1, 0)
mainLayout.addWidget(nameEbl2, 1, 1, 1, 2)
mainLayout.addWidget(btnOk, 2, 1)
mainLayout.addWidget(btnCancel, 2, 2)
def link_hovered(self):
print("当鼠标滑过label2标签时,触发事件。")
def link_clicked(self):
print("当鼠标点击label4标签时,触发事件。")
if __name__ == '__main__':
app = QApplication(sys.argv)
labelDemo = QlabelDemo()
labelDemo.show()
sys.exit(app.exec_())
- 代码分析
- 在弹出的窗口中,按“Alt+N”快捷键可以切换到第一个文本框,因为这个文本框与QLabel进行了关联。再按“Alt+P”又切换到了第二文本框,道理一样。
- 效果如图
-
文章来源: https://blog.51cto.com/u_15930659/5990485
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报