GUI编程Pyqt5之设置伙伴关系

本文介绍了PyQt5中如何设置QLabel和QLineEdit的伙伴关系,以便通过助记符快速定位和聚焦交互式部件。通过在QLabel的文本中设定加速键,用户可以使用Alt+指定字母快捷地将焦点切换到对应的部件。示例代码展示了如何在布局管理器中创建标签和行编辑器,并设置它们的伙伴关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Pyqt5之设置伙伴关系


讲述表单布局管理器时提到了设置一个标签和一个部件的伙伴关系。其实,伙伴 (buddy) 是在 QLabel 类中提出的一个概念。因为一个标签经常用作一个交互式部件的说明,就像在讲表单布局管理器时看到的那样,一个 lineEdit 部件前面有一个标签说明这个 lineEdit 的作用。为了方便定位,QLabel 提供了一个有用的机制,那就是提供了助记符来设置键盘焦点到对应的部件上,这个部件就叫这个 QLabel 的伙伴。其中助记符就是我们所说的加速键。使用英文标签时,在字符串的一个字母前面添加“&” 符号,那么就可以指定这个标签的加速键是Alt加上这个字母,而对于中文,需要在小括号中指定加速键字母。Qt设计器中也提供了伙伴设计模式

例子:
在这里插入图片描述

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *


class AppGui(QWidget):
    def __init__(self):
        super(AppGui, self).__init__()
        self.initUI()

    def initUI(self):
        # self无父窗口,不是窗口部件,而是个窗口
        self.setWindowTitle("我是widget")

        #  设置布局管理器
        layout = QVBoxLayout()
        layout1 = QHBoxLayout()
        layout2 = QHBoxLayout()
        # 设置标签
        label1 = QLabel("我是个窗口1")
        label1.setText("姓名(&N)")
        label2 = QLabel("我是个窗口2")
        label2.setText("性别(&S)")
        # 设置行编辑器
        nameLineEdit = QLineEdit()
        sexLineEdit = QLineEdit()
        # 标签和行编辑器添加打相应布局管理器中
        layout1.addWidget(label1)
        layout1.addWidget(nameLineEdit)
        layout2.addWidget(label2)
        layout2.addWidget(sexLineEdit)
        # 分别设置伙伴关系
        label1.setBuddy(nameLineEdit)
        label2.setBuddy(sexLineEdit)
        # 将子布局管理器添加到父布局管理器中
        layout.addLayout(layout1)
        layout.addLayout(layout2)
        #  设置全局布局管理器
        self.setLayout(layout)


if __name__ == '__main__':
    # 创建应用程序
    app = QApplication(sys.argv)

    # 在应用程序里创建窗口
    ui = AppGui()
    #  显示窗口
    ui.show()

    # 进入程序的主循环、并通过exit函数确保主循环安全结束
    sys.exit(app.exec_())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值