PyQt5 QTextEdit添加 Enter 按钮 监听事件
  HvTJUzsxOBtS 2023年11月25日 45 0



文章目录

  • 1、 简介
  • 2、功能实现


1、 简介

QTextEdit 有的时候会需要在按 Enter 案件的时候,进行一定的事件操作。

但是QTextEdit 本身没有这样的 接口,所以我们 需要自定义组件。

如下图:

当我们 QTextEdit 点击 Enter 的时候,会执行相应操作

PyQt5  QTextEdit添加 Enter 按钮 监听事件_Qt

2、功能实现
  1. 主界面 testEdit.py
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt5 UI code generator 5.12.2
#
# WARNING! All changes made in this file will be lost!
import sys

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMainWindow, QApplication

from myTextEdit import  myTextEdit


class Ui_MainWindow(QMainWindow):
    def __init__(self ):
        super().__init__()
        self.setObjectName("self")
        self.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(self)
        self.centralwidget.setObjectName("centralwidget")
        self.verticalLayoutWidget = QtWidgets.QWidget(self.centralwidget)
        self.verticalLayoutWidget.setGeometry(QtCore.QRect(160, 30, 160, 80))
        self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setObjectName("verticalLayout")
       # self.textEdit = QtWidgets.QTextEdit(self.verticalLayoutWidget) # 这里替换自己定义的 QTextView
        self.textEdit = myTextEdit(self.verticalLayoutWidget)
        self.textEdit.setObjectName("textEdit")
        self.textEdit.setText("Hello")
        self.verticalLayout.addWidget(self.textEdit)
        self.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(self)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 19))
        self.menubar.setObjectName("menubar")
        self.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(self)
        self.statusbar.setObjectName("statusbar")
        self.setStatusBar(self.statusbar)

        self.retranslateUi()
        QtCore.QMetaObject.connectSlotsByName(self)

    def retranslateUi(self):
        _translate = QtCore.QCoreApplication.translate
        self.setWindowTitle(_translate("MainWindow", "MainWindow"))


if __name__ == "__main__":
    app = QApplication(sys.argv)
    win = Ui_MainWindow()
    win.show()
    sys.exit(app.exec_())

2)自定义的QTextEdit文件

from PyQt5 import QtWidgets
from PyQt5.QtCore import Qt


class myTextEdit(QtWidgets.QTextEdit): #继承 原本组件
    def __init__(self,parent):
        QtWidgets.QTextEdit.__init__(self)
        self.parent = parent

    def keyPressEvent(self, event):
        QtWidgets.QTextEdit.keyPressEvent(self,event)
        print('press',event)
        if event.key() == Qt.Key_Return: #如果是Enter 按钮
            print('success press enter key',self.toPlainText())

文件参考:
PyQt5如何在QTextEdit控件中按下回车就发送消息


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月25日 0

暂无评论

推荐阅读
HvTJUzsxOBtS