PyQt5—基本窗口控件(二)

基本窗口控件


三、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:[email protected]
    # 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 标签时,触发事件
    
版权声明:本文为qq_42896653原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42896653/article/details/98075704

智能推荐

Windows系统下正确安装MongoDB

1、下载、安装 官网下载: http://www.mongodb.org/downloads 下载好之后,接下来进行安装了: 2、创建数据文件夹 MongoDB将数据文件夹存储在 db 文件夹下。 可是这个数据文件夹不会主动创建,我们在安装完毕后须要创建它。请注意。数据文件夹应该放在根文件夹下((如: C:\ 或者 D:\ 等 )。  在本教程中。我们已经在C:盘 安装了 mo...

DC-8靶机教程

多喝热水:http://hackergu.com/ 一、主机发现 ​ 使用netdiscover,发现主机IP为192.168.203.134。 二、端口扫描 ​ 目标开放22端口和80端口,web站点是一个DrupalCMS的站点,版本为7。 三、漏洞利用 ​ 我们访问此站点: ​ 关注点为两个红框,如果点击上面那个红框的内容,url显示为: ​ 倘若点击的是下面的红框,则url显示为: ​ 看...

Android VIEW简单绘图

画布canvas 提供两个构造函数: Canvas():创建一个空的Canvas对象 Canvas(Bitmap bitmap):创建一个以bitmap位图为背景的Canvas 常用的Canvas方法: void drawBitmap(Bitmap bitmap,float left,float top,Paint paint):在指定坐标绘制位图 void drawLine(float star...

数据去重的各种方法汇总(三)

Pandas去重DataFrame 接上篇,这篇就剩最后的用Pandas对DataFrame里面的数据去重,这里也有两种方法,可以直接看官方文档(但是掌柜觉得其实就是一种方法,因为第一种只是显示哪些重复。。。): 使用duplicated方法,它会返回一个布尔向量,其长度为行数,表示行是否重复,但是并不会删除重复数据。来看实例: 然后会得到这样一个表格: 现在使用duplicated方法: 会得到...

Linux环境下RabbitMQ消息队列的安装和配置

一、什么是RabbitMQ? RabbitMQ就是一个在AMQP基础上实现的企业级消息系统,简单的说,就是一个消息队列系统。具体的介绍,可以网上去搜!目前只介绍RabbitMQ在Linux系统的安装。 二、RabbitMQ的安装 1、 RabbitMQ是基于Erlang开发,所以使用之前必须安装Erlang语言开发包。 wget http://www.erlang.org/download/otp...

猜你喜欢

train_test_split切分数据集工具

顾名思义,这是一个切分训练集与测试集的工具   如果我们不使用,而是手动进行划分,要么进行简单的操作——划去前80%为训练集,后20%为测试集,这样会带来很多的问题,因为这样做,我们切出来的会让训练集和测试集的分布很不一致,我们可以看一下简单粗暴方法切出来的分布图: 红色的训练集,蓝色是测试集(点击图片放大可以看得很清楚,直接看博客好像图片模糊)   然...

shell编程第一节 和shell

shell编程看的博客感觉写的挺好的:http://www.cnblogs.com/dongying/p/6262935.html 以及  https://www.cnblogs.com/clsn/p/8028337.html#auto_id_0 简单总结:shell编程就是对一堆Linux命令的逻辑化处理。 chmod +x hello_world.sh ./hello_world.s...

微信开发:js sdk 分享(java)

今天记录一下微信jssdk 的分享给朋友的功能,获取config接口注入。 1.需要绑定域名(注意:设置js安全域名的时候,需要设置微信ip白名单,ip白名单新出来的,非白名单内的ip无法获取access_token 更无法获取jsapi) 在设置js 安全域名在 设置–>公众号设置–>功能设置里边 appid appSercret 在开发–>...

js--HTML美术馆

前言 因为之前库房合作的时候交给我一个任务,就是在点击某一项物品的时候显示出几张相印的小图片,然后点击小图片之后显示出一张大图片,因为当时还没有接触JavaScript,所以这方面的知识不是很了解,一直拖着,大概有两天吧,是在是解决不了,于是将这个任务交给了老付和建华,今天在学习JavaScript的时候突然之后就看到了有这么一项功能,于是就有感而发。 内容 首先向大家展示代码。 这部分是HTML...

Jenkins持续集成环境部署(入门篇)

为什么要持续集成 持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。 价值: 1、减少风险 一天中进行多次的集成,并做了相应的测试,有利于检查缺陷,了解软件的健康状况,减少假定。 2、减少重复过程 节省时间、费用和工作量,通过自动化的持...