QT:逃离QTabWidget
QT: Escape from QTabWidget
我在其中有一个对话框和一个选项卡 QTabWidget,在该选项卡内有一个 table 视图。请看下面的屏幕截图
问题是,当我在对话框(Telp 文本框)的文本框中按 Tab 键时,它会转到选项卡 Items,然后当我再次单击时,它会转到 Table 视图,但我永远不能离开这个选项卡项目。现在我正在使用 QShortcut 退出此选项卡项并转到对话框上的文本区域。我想使用 Tab 键从这个 Tab Items 中退出。可能吗?
来自文档:
void QWidget::setTabOrder ( QWidget * first, QWidget * second ) [static]
在焦点顺序中将第二个小部件放在第一个小部件之后。
请注意,由于第二个小部件的 Tab 键顺序已更改,您应该这样排序:
setTabOrder(a, b); // a to b
setTabOrder(b, c); // a to b to c
setTabOrder(c, d); // a to b to c to d
不是这样的:
// 错误
setTabOrder(c, d); // c to d
setTabOrder(a, b); // a to b AND c to d
setTabOrder(b, c); // a to b to c, but not c to d
如果 first 或 second 有焦点代理,setTabOrder() 会正确替换代理。
好的,我可以通过子类化 QTableView 并覆盖 keyPressEvent 事件来解决这个问题
void LMJTableView::keyPressEvent(QKeyEvent *event)
{
if(event->key() == Qt::Key_Tab){
//event->ignore();
if (nextWidget!=NULL) {
nextWidget->setFocus();
}
}
else
QTableView::keyPressEvent(event);
}
我在其中有一个对话框和一个选项卡 QTabWidget,在该选项卡内有一个 table 视图。请看下面的屏幕截图
问题是,当我在对话框(Telp 文本框)的文本框中按 Tab 键时,它会转到选项卡 Items,然后当我再次单击时,它会转到 Table 视图,但我永远不能离开这个选项卡项目。现在我正在使用 QShortcut 退出此选项卡项并转到对话框上的文本区域。我想使用 Tab 键从这个 Tab Items 中退出。可能吗?
来自文档:
void QWidget::setTabOrder ( QWidget * first, QWidget * second ) [static]
在焦点顺序中将第二个小部件放在第一个小部件之后。
请注意,由于第二个小部件的 Tab 键顺序已更改,您应该这样排序:
setTabOrder(a, b); // a to b
setTabOrder(b, c); // a to b to c
setTabOrder(c, d); // a to b to c to d
不是这样的:
// 错误
setTabOrder(c, d); // c to d
setTabOrder(a, b); // a to b AND c to d
setTabOrder(b, c); // a to b to c, but not c to d
如果 first 或 second 有焦点代理,setTabOrder() 会正确替换代理。
好的,我可以通过子类化 QTableView 并覆盖 keyPressEvent 事件来解决这个问题
void LMJTableView::keyPressEvent(QKeyEvent *event)
{
if(event->key() == Qt::Key_Tab){
//event->ignore();
if (nextWidget!=NULL) {
nextWidget->setFocus();
}
}
else
QTableView::keyPressEvent(event);
}