我正在实现一个基于文本的待办事项程序。我有一个继承自
我想要实现一些快捷方式。
1/ 重写
希望你能帮忙解决这个问题,谢谢!
QLineEdit
的CommandInput
小部件。基本上有几个命令,以关键字“add”,“delete”,“edit”等开头,还有一些其他命令。我想要实现一些快捷方式。
Ctrl+A
,这样当小部件获得焦点时,我可以使用setText("add \"\"")
,光标位于倒数第二个位置,所以它看起来像add "|"
Tab
,这样当小部件获得焦点时,当用户输入第一个关键字,例如add
,然后我可以将命令完成为add "|"
1/ 重写
keyPressEvent
。 Tab
键无法正常工作。即使它起作用,我也不知道如何处理像Ctrl+A
这样的键序列。void CommandInput::keyPressEvent(QKeyEvent *keyEvent)
{
switch(keyEvent->key())
{
case Qt::Key_Tab;
emit add_activated();
default:
QLineEdit::keyPressEvent(keyEvent);
}
}
2/ 在初始化时创建快捷方式。这也不起作用。
CommandInput::CommandInput(QWidget *parent)
: QLineEdit(parent)
{
tab_shortcut = new QShortcut(QKeySequence("Tab"),this);
add_shortcut = new QShortcut(QKeySequence("Ctrl+A"),this);
connect(tab_shortcut, SIGNAL(activated()),
this, SIGNAL(tab_activated()));
connect(add_shortcut, SIGNAL(activated()),
this, SIGNAL(add_activated()));
}
希望你能帮忙解决这个问题,谢谢!