在一个小部件中,我放了两个 QPushButton(让我们说左边的“OK”和右边的“EXIT”)。当我使用鼠标按下它们时,它们会定期工作。假设我想使用 TAB 键从一个切换到另一个:这可能吗?怎么能做到这一点?
在某些平台上,按钮之间的键盘焦点导航是默认行为,但在某些平台上则不是。
如果您希望在所有平台上进行键盘导航,则按钮上应Qt::StrongFocus设置策略。请注意,用于触发按钮的快捷方式也是特定于平台的。例如在 OS X 上你会使用Space.
#include <QtWidgets>
int main(int argc, char ** argv) {
QApplication app{argc, argv};
QWidget w;
QVBoxLayout layout{&w};
// Individual Buttons
QPushButton p1{"button1"}, p2{"button2"};
for (auto p : {&p1, &p2}) {
layout.addWidget(p);
p->setFocusPolicy(Qt::StrongFocus);
}
// A button box
QDialogButtonBox box;
for (auto text : {"button3", "button4"})
box.addButton(text, QDialogButtonBox::NoRole)->setFocusPolicy(Qt::StrongFocus);
layout.addWidget(&box);
w.show();
return app.exec();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1825 次 |
| 最近记录: |