双击一个 QLineEdit 为什么会产生一个 QEvent:KeyPress
答案:2 悬赏:0 手机版
解决时间 2021-01-26 06:38
- 提问者网友:黑米和小志
- 2021-01-25 09:01
双击一个 QLineEdit 为什么会产生一个 QEvent:KeyPress
最佳答案
- 五星知识达人网友:野味小生
- 2021-01-25 10:12
qt 4.7.1
#include
#include
#include
#include
class HotkeyEdit: public QLineEdit
{
Q_OBJECT
public:
HotkeyEdit(QWidget *parent=0);
void mouseDoubleClickEvent ( QMouseEvent * event );
void keyPressEvent ( QKeyEvent * event );
};
HotkeyEdit::HotkeyEdit(QWidget *parent):QLineEdit(parent)
{
}
void HotkeyEdit::mouseDoubleClickEvent ( QMouseEvent * event ){
qDebug() << "HotkeyEdit::mouseDoubleClickEvent";
event->ignore();
}
void HotkeyEdit::keyPressEvent ( QKeyEvent * event )
{
QKeySequence keySeq(event->modifiers() + event->key());
int keyCode=event->key();
if( (keyCode==Qt::Key_Control) || (keyCode==Qt::Key_Alt) || (keyCode==Qt::Key_Shift) || (keyCode==Qt::Key_Meta))
{
qDebug() << "keyCode:" << keySeq.toString() << event->key();
}else
{
qDebug() << "KeyPress:" << keySeq.toString() << event->key();
setText(keySeq.toString());
}
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
HotkeyEdit w;
w.show();
return a.exec();
}
#include "main.moc"
#include
#include
#include
#include
class HotkeyEdit: public QLineEdit
{
Q_OBJECT
public:
HotkeyEdit(QWidget *parent=0);
void mouseDoubleClickEvent ( QMouseEvent * event );
void keyPressEvent ( QKeyEvent * event );
};
HotkeyEdit::HotkeyEdit(QWidget *parent):QLineEdit(parent)
{
}
void HotkeyEdit::mouseDoubleClickEvent ( QMouseEvent * event ){
qDebug() << "HotkeyEdit::mouseDoubleClickEvent";
event->ignore();
}
void HotkeyEdit::keyPressEvent ( QKeyEvent * event )
{
QKeySequence keySeq(event->modifiers() + event->key());
int keyCode=event->key();
if( (keyCode==Qt::Key_Control) || (keyCode==Qt::Key_Alt) || (keyCode==Qt::Key_Shift) || (keyCode==Qt::Key_Meta))
{
qDebug() << "keyCode:" << keySeq.toString() << event->key();
}else
{
qDebug() << "KeyPress:" << keySeq.toString() << event->key();
setText(keySeq.toString());
}
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
HotkeyEdit w;
w.show();
return a.exec();
}
#include "main.moc"
全部回答
- 1楼网友:从此江山别
- 2021-01-25 10:36
不明白啊 = =!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯