当前位置: 首页 > news >正文

对pyside6中的textedit进行自定义,实现按回车可以触发事件。

我的实现方法是,先用qt designer写好界面,如下图:
在这里插入图片描述
接着将其生成的ui文件编译成为py文件。
找到里面这几行代码:

 self.textEdit = QTextEdit(self.centralwidget)self.textEdit.setObjectName(u"textEdit")self.textEdit.setGeometry(QRect(53, 410, 490, 131))

把它改成

self.myTextEdit = MyTextEdit(self.centralwidget)
self.myTextEdit.setObjectName(u"myTextEdit")
self.myTextEdit.setGeometry(QRect(53, 410, 490, 131))

这里面的myTextEdit你可以替换成任意自己喜欢的名字,后文不再赘述。
那四个数字是布局的数字,因为之前在设计器里面已经调好了,所以数字原封不动抄下来。

接着在这个关于ui的python文件中顶上(也就是导入模块下方,其他类上方的位置)的位置加上自定义控件的类的代码:

class MyTextEdit(QTextEdit):return_pressed = Signal()#为什么要继承后重写?因为原来的控件不支持检测回车键事件。按了回车会默认换行。def __init__(self,parent=None):super().__init__(parent)def keyPressEvent(self, event):QTextEdit.keyPressEvent(self,event)if event.key() == Qt.Key_Return:if self.toPlainText()!='':#非空才触发信号,为空的时候触发了没意义。self.return_pressed.emit()

最顶上部分从源代码导入框架的位置,要加上这个

from PySide6.QtCore import Signal

这是因为原来的UI文件里面没有引入信号,这里需要手动添加一下。

ui文件末尾也需要把retranslateUi里面的相关名字改一下,把

self.textEdit.setHtml

改成

self.myTextEdit.setHtml

注意:setHtml后面还有内容,只是太长了,我懒得写,因为后面没啥变化,就没必要列出来。

以上这部分是ui.py中要改的代码。

接着回到主入口的代码(也就是要点击运行程序的那个代码)
在初始化主窗口的代码中,加上这个:

self.ui.myTextEdit.return_pressed.connect(self.xxxslot)

这里面的self.xxxslot是任意需要激活的槽函数

这个代码整体运行的逻辑是:一旦我在输入框里按了回车,就会释放一个return_pressed的信号,而这个信号会被相应的槽捕获,从而执行槽函数里面的内容,我这里就是简单地把输入框中的文本发送出去,让别的代码进行处理。

http://www.lryc.cn/news/179695.html

相关文章:

  • Spark SQL
  • 初识多线程
  • Linux用户、用户组和文件权限的管理与实践
  • 【CMU15-445 Part-14】Query Planning Optimization I
  • 七、垃圾收集中级
  • el-menu 导航栏学习(1)
  • Axios请求封装
  • Pikachu靶场——XXE 漏洞
  • vscode登录租的新服务器
  • Verilog参数定义与仿真模块中的参数修改
  • Android studio升级Giraffe | 2022.3.1 Patch 1踩坑
  • 使用U3D、pico开发VR(二)——添加手柄摇杆控制移动
  • 【FPGA项目】图像采集及显示(2)详细设计方案
  • 查找排序部分习题 242. 有效的字母异位词 74. 搜索二维矩阵 1. 两数之和 167.两数之和 II
  • MATLAB算法实战应用案例精讲-【优化算法】冠状病毒优化算法(COVIDOA)(附MATLAB代码实现)
  • React查询、搜索类功能的实现
  • k8s搭建EFK日志系统
  • LuatOS-SOC接口文档(air780E)-- fonts - 字体库
  • [Java·算法·困难]LeetCode124.二叉树中的最大路径和
  • 【微服务保护】
  • 【MATLAB第78期】基于MATLAB的VMD-SSA-LSTM麻雀算法优化LSTM时间序列预测模型
  • 分类预测 | MATLAB实现SSA-FS-SVM麻雀算法同步优化特征选择结合支持向量机分类预测
  • 唤醒手腕 Matlab 游戏编程常用技术知识点详细教程(更新中)
  • 2023八股每日一题(九月份)
  • 分布式链路追踪--SkyWalking7.0.0+es7.0.0
  • web:[RoarCTF 2019]Easy Calc
  • 【Java每日一题】— —第十七题:杨辉三角(等腰三角形)。(2023.10.01)
  • Ubuntu20.04.1编译qt6.5.3版mysql驱动
  • Stm32_标准库_4_TIM中断_PWM波形_呼吸灯
  • 华为摄像头智能安防监控解决方案