PyQt5—基本窗口控件(二)
程序员文章站
2022-03-10 21:43:26
...
基本窗口控件
三、QLabel
- QLabel 对象作为一个占位符,可以显示不可编辑的文本或图片,也可以放置 GIF 动画,还可以用作为其他控件的提示。
- 纯文本、连接或富文本都可以显示在标签上。
- QLabel 是界面中的标签类,继承自 QFrame 类。
1、QLabel 常用方法
- QLabel 类的常用方法如下表:
方法 描述 setAlignment() 按固定值方法对齐文本 setIndent() 设置文本缩进值 setPixmap() 设置 QLabel 为一个 Pixmap 图片 text() 获取 QLabel 的文本内容 setText() 设置 QLabel 的问本内容 selectedText() 返回所选择的字符 setBuddy() 设置 QLabel 的助记符及 buddy(伙伴),即使用 QLabel 快捷键,会在快捷键后将焦点设置到其 buddy 上;buddy 可以是任意 widget 控件。使用 setBuddy(QWidget*) 设置,其 QLabel 必须是文本内容,并且使用“&”符号设置了助记符 setWordWrap() 设置是否换行 - setAlignment() 方法的可选值如下表:
值 描述 Qt.AlignLeft 水平方向靠左对齐 Qt.AlignRight 水平方向靠右对齐 Qt.AlignCenter 水平方向居中对齐 Qt.AlignJustify 水平方向调整间距两端对齐 Qt.AlignTop 垂直方向靠上对齐 Qt.AlignBottom 垂直方向靠下对齐 Qt.AlignVCenter 垂直方向居中对齐
2、QLabel 常用信号
- QLabel 类常用的信号如下表:
信号 描述 linkActivated 当单击标签中嵌入的超链接,希望在新窗口打开这个超链接时,setOpenExternalLinks 特性必须设置为 true。 linkHovered 当鼠标指针滑过标签中嵌入的超链接时,需要用槽函数与这个信号进行绑定
3、QLabel 实例
- 实例代码如下:
# -*- coding:utf-8 -*- # Time : 2019/08/01 下午 6:38 # Author : 御承扬 # e-mail:aaa@qq.com # project: PyQt5 # File : qt07_QLabel.py # @software: PyCharm from PyQt5.QtWidgets import QApplication, QLabel, QWidget, QVBoxLayout from PyQt5.QtCore import Qt from PyQt5.QtGui import QPixmap, QPalette, QIcon 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.blue) label1.setPalette(palette) label1.setAlignment(Qt.AlignCenter) label2.setText("<a href='#'>欢迎使用 Python GUI 应用</a>") label3.setAlignment(Qt.AlignCenter) label3.setToolTip('这是一个图片标签') label3.setPixmap(QPixmap("./images/python.jpg")) label4.setText("<A href='https://blog.csdn.net/qq_42896653/article/category/9162463'>欢迎访问御承扬的PyQt5主题的博客</A>") label4.setAlignment(Qt.AlignRight) label4.setToolTip("这是一个超链接标签") # 2 在窗口布局中添加控件 vBox = QVBoxLayout() vBox.addWidget(label1) vBox.addStretch() vBox.addWidget(label2) vBox.addStretch() vBox.addWidget(label3) vBox.addStretch() vBox.addWidget(label4) # 3 允许 label1 控件访问超链接 label1.setOpenExternalLinks(True) label4.setOpenExternalLinks(False) # 点击文本框绑定槽事件 label4.linkActivated.connect(link_clicked) # 滑过文本框绑定槽事件 label2.linkHovered.connect(link_hovered) label1.setTextInteractionFlags(Qt.TextSelectableByMouse) self.setLayout(vBox) self.setWindowTitle("QLabel 例子") self.setWindowIcon(QIcon("Python2.ico")) def link_hovered(): print("当鼠标滑过 label2 标签时,触发事件") def link_clicked(): print("当鼠标点击 label4 标签时,触发事件") if __name__ == "__main__": app = QApplication(sys.argv) win = WindowDemo() win.show() sys.exit(app.exec_())
- 运行效果如下图:
- 控制台输出如下:
当鼠标滑过 label2 标签时,触发事件 当鼠标点击 label4 标签时,触发事件 当鼠标滑过 label2 标签时,触发事件 当鼠标滑过 label2 标签时,触发事件
上一篇: PyQt5基本窗口控件-----QTextEdit
下一篇: Win8小技巧:掌控飞行模式快捷开关