Bonjour,

J'ai un souci avec un QTextEdit et l'appui sur la touche Entrée.
Je souhaite, lorsque le focus et dans celui ci que l'action sur un bouton envoyer soit déclenché.
J'ai pas mal regardé sur le web, mais je ne trouve pas de solution à mon pb.
J'ai regardé la solution ici qui prend très bien mon appui sur la touche entré, mais je n'arrive pas a appelé ma fonction qui gère le click sur le bouton.

Voici le code de ma fenêtre généré par QtDesigner
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
from PyQt5 import QtCore, QtGui, QtWidgets
 
class Ui_f_client(object):
    def setupUi(self, f_client):
        f_client.setObjectName("f_client")
        f_client.resize(800, 600)
        self.te_msg_send = QtWidgets.QTextEdit(self.centralwidget)
        self.te_msg_send.setGeometry(QtCore.QRect(130, 490, 621, 101))
        self.te_msg_send.setObjectName("te_msg_send")
        self.b_send = QtWidgets.QPushButton(self.centralwidget)
        self.b_send.setGeometry(QtCore.QRect(755, 510, 41, 61))
        self.b_send.setObjectName("b_send")
        f_client.setCentralWidget(self.centralwidget)
 
        self.retranslateUi(f_client)
        QtCore.QMetaObject.connectSlotsByName(f_client)
 
    def retranslateUi(self, f_client):
        _translate = QtCore.QCoreApplication.translate
        f_client.setWindowTitle(_translate("f_client", "Home Chat"))
        self.b_connect.setText(_translate("f_client", "Connect"))
        self.lbl_connect_to.setText(_translate("f_client", "Connect to :"))
        self.b_send.setText(_translate("f_client", "Send"))
        self.lbl_name.setText(_translate("f_client", "Name :"))
        self.b_stop.setText(_translate("f_client", "Stop"))
et le code de l'appli
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
class FenPrincipal(QtWidgets.QMainWindow, Vue.vclient.Ui_f_client):
    def __init__(self, parent=None):
        super(FenPrincipal, self).__init__(parent)
        self.setupUi(self)
        self.b_send.clicked.connect(self.Send)
        self.te_msg_send.__class__ = MonTextEdit
 
    def Send(self, val="a"):
        #Envoi du message
        if self.leThread.is_alive():
            self.leThread.messagetosend(self.te_msg_send.toPlainText())
        #vide la zone de saisie
        self.te_dialogue.appendPlainText(self.te_msg_send.toPlainText())
        self.te_msg_send.setText("")
 
class MonTextEdit(QtWidgets.QTextEdit):
    def keyPressEvent(self, event):
        if event.key() == QtCore.Qt.Key_Enter or event.key() == QtCore.Qt.Key_Return:
            #FenPrincipal.Send()
            pass
        else:
            return super().keyPressEvent(event)
 
if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = FenPrincipal()
    MainWindow.show()
    sys.exit(app.exec_())
la référence au thread fonction. Quand je clique sur le bouton send, le comportement est ok.
Mon problème ce trouve lorsque je veux faire le raccourci entre la touche entré et le clic sur le bouton.

Merci pour vos retour
eskehnach