我有一个对话框和一个标签QTabWidget,在该标签内有一个表格视图。请参阅下面的屏幕截图
问题是,当我从对话框(文本框Telp)中的文本框中按Tab键时,它会转到选项卡项目,然后当我再次单击它进入表视图但我永远无法退出此选项卡项目。现在我正在使用QShortcut从此Tab项中转义并转到对话框上的文本区域。我想使用Tab键来逃避此Tab项目。有可能吗?
答案 0 :(得分:0)
来自doc:
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
如果第一个或第二个具有焦点代理,则setTabOrder()正确替换代理。
答案 1 :(得分:0)
好的我可以通过子类化QTableView并覆盖keyPressEvent事件来解决这个问题
void LMJTableView::keyPressEvent(QKeyEvent *event)
{
if(event->key() == Qt::Key_Tab){
//event->ignore();
if (nextWidget!=NULL) {
nextWidget->setFocus();
}
}
else
QTableView::keyPressEvent(event);
}