lineedit加入边框 qt_[Qt] QLineEdit 仿QQ签名框

本文介绍了如何在Qt中自定义QLineEdit控件,使其呈现出类似QQ签名框的效果。通过继承QLineEdit,应用QSS样式,以及处理鼠标和键盘事件,实现了高亮边框和焦点切换的效果。在实现过程中,需要注意控件焦点的管理和鼠标事件的响应。
摘要由CSDN通过智能技术生成

今天鼓捣了半天,终于实现了自定义Qt中的QlineEdit控件的大致效果。

这个问题对于新手而言,主要有以下几个难点:

1.继承QLineEdit控件

2.QSS设置QLineEdit的相关样式,可以省下很多代码

3.自定义相关事件

void mousePressEvent(QMouseEvent *event); // 鼠标点击的时候,编程输入框void keyPressEvent(QKeyEvent *event); // 按下Enter的时候,处理void mouseMoveEvent(QMouseEvent *event); // 鼠标移动的时候,显示效果

OK,下面我们来一步步实现这个自定义控件。

首先,第一步你肯定是要创建一个新类继承QLineEdit, QtCreator会自动为你实现一些无关紧要的代码。

第二步用PhotoShop做一个突出的高亮图片,像QQ签名框上的那样:

c9d6b097f5f2b68026ad685933d76ada.png

第三步开始实现具体的代码了。

首先构造函数中需要设置一些QSS样式,这一步可以省下很多代码,具体样式对应的功能,请读者自行研究。

this->setStyleSheet("QLineEdit{ background:rgba(0,0,0,0%); border:1px; font:10pt}"

"QLineEdit:hover{ border-image

Qt架中,`QLineEdit` 是一个用于单行文本输入的控件。如果要获取用户在 `lineEdit_ref1_side` 中输入的参数,通常会使用信号和槽机制。其中,`QLineEdit` 提供了一个 `textChanged` 信号,当文本改变时会发射,但如果你想要立即获取输入的参数,你可以直接通过访问 `QLineEdit` 的 `text()` 方法来现。 下面是一个示例代码,展示如何连接信号和槽来获取用户输入: ```python from PyQt5.QtWidgets import QLineEdit class MyWidget(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): # 创建一个 QLineEdit 例 self.lineEdit_ref1_side = QLineEdit(self) # 连接 QLineEdit 的 textChanged 信号到槽函数 text_edited self.lineEdit_ref1_side.textChanged.connect(self.text_edited) # 将 QLineEdit 控件添加到布局中(这里假设 self.frame_ref1_top11 是布局管理器) self.frame_ref1_top11.setLayout(QVBoxLayout()) self.frame_ref1_top11.layout().addWidget(self.lineEdit_ref1_side) # 初始化界面 self.setLayout(self.frame_ref1_top11.layout()) # 定义槽函数,用于处理文本编辑完成后的逻辑 def text_edited(self, text): # text 参数就是 QLineEdit 控件中当前的文本内容 print("用户输入的参数是:", text) # 这里可以根据际需求对输入的文本进行处理 # 例如:转换数据类型,验证输入格式等 # 假设我们需要将文本转换为整数 try: value = int(text) print("转换后的整数是:", value) except ValueError as e: print("输入不是有效的整数,错误信息:", e) ``` 在这个例子中,每当用户在 `lineEdit_ref1_side` 中输入或修改文本时,`text_edited` 槽函数就会被调用,并且传入当前的文本值作为参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值