在qt中回车切换焦点的问题?
一个QWidget是主窗口,上面有一些QLineEdit QComboBox等等,用Tab切换太麻烦了,想换成回车切换焦点,代码如下:
///@brief 回车切换焦点
void MyWidget::keyPressEvent(QKeyEvent* event)
{
if (event->key() == Qt::Key_Enter) {
QKeyEvent* convertEvent =
new QKeyEvent(QEvent::KeyPress, Qt::Key_Tab, Qt::NoModifier);
keyPressEvent(convertEvent);
return;
}
QWidget::keyPressEvent(event);
}
这样写为什么不行啊,跟踪下来发现event->key()是空的,有知道的或者给个正确的办法也行,最好也帮我解释下为什么event->key()是空的?
是不是因为这个event是在QLineEdit或者QComboBox上产生的,没有传递到QWidget上去?
///@brief 回车切换焦点
void MyWidget::keyPressEvent(QKeyEvent* event)
{
if (event->key() == Qt::Key_Enter) {
QKeyEvent* convertEvent =
new QKeyEvent(QEvent::KeyPress, Qt::Key_Tab, Qt::NoModifier);
keyPressEvent(convertEvent);
return;
}
QWidget::keyPressEvent(event);
}
这样写为什么不行啊,跟踪下来发现event->key()是空的,有知道的或者给个正确的办法也行,最好也帮我解释下为什么event->key()是空的?
是不是因为这个event是在QLineEdit或者QComboBox上产生的,没有传递到QWidget上去?
...全文
相关推荐
Qt实现双击可编辑的QLabel,按回车或Esc确认
在一个QLabel标签上,双击,对文本进行编辑,按下回车或者Esc,退出编辑状态,或者任意点击其他地方,退出Focus,退出编辑状态
Qt设置回车焦点
ui.pushButton->setFocus(); //设置默认焦点 ui.pushButton->setShortcut( QKeySequence::InsertParagraphSeparator ); //设置快捷键为键盘的“回车”键 ui.pushButton->setShortcut(Qt::Key_Enter); //设置快捷键为enter键 ui.pushButton->setShortcut(Qt::Key_Return); //设置快捷键为小键盘上的e
qt键盘映射和焦点移动
一个qt按键映射及基于事件过滤器的按键焦点移动事件的ui界面程序,可以在arm-linux-g++下编译通过,g++编译会报错,二进制文件下载到开发板上可执行
使用qt实现一键多用
实现焦点一直在文本框中,回车键实现查询,切换列表的双向功能,该实例适用于按键较少的情况,例如超市的pos系统,也可用于其它功能,在vs2010+qt5.40+win7下通过
文本框回车自动跳转.zip
Qt编写的一些开源的demo,代码简洁易懂注释详细,每个都是独立项目,可直接运行。。。。


