PyQt5 在输入框 LineEdit 中添加点击事件

需求背景

在用PyQt5做图形界面开发时,需要在输入框的最右边添加一个按钮,比如确认键


实现方法

本篇文章使用QAction来实现,原理为QAction触发一个行为,绑定触发该行为后的槽函数。

下面直接上代码

import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QWidget, QApplication, \
    QAction, QLineEdit, QFormLayout, QHBoxLayout, QPushButton, QMessageBox

from PyQt5.QtGui import QIcon, QTextObject, QTextBlock


class TestAction(QWidget):
    def __init__(self, parent=None):
        super(TestAction, self).__init__(parent)
        self.setWindowTitle('test')

        win = QHBoxLayout()
        pLineEdit = QLineEdit()	# 线性输入框
        act = QAction(self)	# 定义一个行为
        # act.setText('comfire')	# 给该行为设置文本,但我这里不起作用~

        act.setIcon(QIcon('./confirm.jpg'))	# 设置行为icon,
        act.triggered.connect(self.show_)	# 绑定行为槽函数,这里槽函数为一个QMessageBox信息弹窗
        pLineEdit.addAction(act, QLineEdit.TrailingPosition)	# 将该行为添加到lineEdit最右端
        win.addWidget(pLineEdit)	# 将lineEdit添加到mainwindow

        self.setLayout(win)

    def show_(self):
        QMessageBox.information(self, 'title', 'msg')


app = QApplication(sys.argv)
cli = TestAction()
cli.show()
sys.exit(app.exec_())

运行效果如下:
在这里插入图片描述
点击上面确认按钮
在这里插入图片描述

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值