[英]How to code a subclassed QTextEdit to cause a slot call on a “enter” key press?
How to code a subclassed QTextEdit to cause a "slot" call on a "enter" key press? 如何编写一个子类QTextEdit以便在“ enter”按键上引起“ slot”调用?
//mainwindow.cpp
myTextEdit *mytext = new myTextEdit(this);
mytext->setGeometry(QRect(QPoint(10,20), QSize(100,50)));
connect(mytext, SIGNAL(myReturn()), this, SLOT(handleText()));
//subclassed QTextEdit
void myTextEdit::keyPressEvent(QKeyEvent *e)
{
QString qstr = ::myTextEdit::toPlainText();
if(e->key() == 16777220){ //enter key
qstr = qstr + "\r\n>> ";
//now cause an event like a QPushButton "released()" event to cause a "slot" call
}else{
qstr = qstr + e->key();
}
::myTextEdit::setText(qstr);
}
//header //标题
signals:
void OnEnter;
void myTextEdit::keyPressEvent(QKeyEvent *e)
{
QString qstr = ::myTextEdit::toPlainText();
if(e->key() == 16777220){ //enter key
qstr = qstr + "\r\n>> ";
//now cause an event like a QPushButton "released()" event to cause a "slot" call
emit OnEnter(); //creates the emit signal to call a slot
}else{
qstr = qstr + e->key();
}
::myTextEdit::setText(qstr);
}
setup slots like QPushButton 设置槽,例如QPushButton
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.