Python Qt GUI设计:QLabel标签类(基础篇—11)

QLabel对象作为一个占位符可以显示不可编辑的文本或图片,也可以放置一个GIF动画,还可以被用作提示标记为其他控件,纯文本、链接或富文本可以显示在标签上。

QLabel类中的常用方法如下表所示:

QLabel类中的常用信号如下表所示:

通过以下案例加强对QLabel类使用方法的理解吧,效果如下所示:

在这个例子中,QLabel对象label1和label3可以显示文字和图片,QLabel对象label2和label4包含超链接的标题,它们的letOpenExternalLinks被设置为True,因此,如果点击这个标签,则相关的URL将在浏览器中打开。将label2的linkHovered信号连接到linkhovered()函数,所以,当用鼠标划过它时,这个函数将被执行。将label4的linkActivated信号连接到linkclicked()函数,所以,当用鼠标点击它时,这个函数将被执行。实现代码如下所示:

```python 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.blue)  
    label1.setPalette(palette) 
    label1.setAlignment( Qt.AlignCenter)

    label2.setText("<A href='https://blog.csdn.net/m0_38106923'>请关注公众号:美男子玩编程</a>")

    label3.setAlignment( Qt.AlignCenter)    
    label3.setToolTip('这是一个图片标签')
    label3.setPixmap( QPixmap("./4.jpg"))

    label4.setText("<A href='https://blog.csdn.net/m0_38106923'>欢迎关注不脱发的程序猿博客!</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
    label2.setOpenExternalLinks(True)
    # 打开允许访问超链接,默认是不允许,需要使用 setOpenExternalLinks(True)允许浏览器访问超链接
    label4.setOpenExternalLinks(True)
    # 点击文本框绑定槽事件  
    label4.linkActivated.connect( link_clicked )

    # 划过文本框绑定槽事件       
    label2.linkHovered.connect( link_hovered )
    label1.setTextInteractionFlags( Qt.TextSelectableByMouse )

    self.setLayout(vbox)
    self.setWindowTitle("QLabel 例子")

def link_hovered(): print("当鼠标滑过label-2标签时,触发事件。")

def link_clicked(): print("当鼠标点击label-4标签时,触发事件。" )

if name == "main":
app = QApplication(sys.argv)
win = WindowDemo()
win.show()
sys.exit(app.exec_()) ```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_44079197

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值