qt - 在具有多层选项卡小部件的小部件中处理选项卡顺序
问题描述
我正在尝试使用 QT creator 为 QgIS 构建一个插件。该插件混合了不同的Forms,支持生成图表和报告。
使用某些表单时,我希望能够使用 tab 键在表单中导航。问题是我必须使用多层选项卡小部件,而且用户界面似乎只有一个全局tab order
列表?我想tab order
每个标签有一个单独的,这有意义吗?可能吗?
我在 QT 中激活tab order
并打印了一个屏幕,我知道如何更改顺序,但是如果我有其他 100 个项目,按正确的顺序单击所有内容会非常麻烦。
解决方案
你基本上有2个选项。
第一个是从设计器 GUI 设置所有 100 多个选项卡。您可以在选项卡模式下通过使用设计区域右侧的所有小部件的概述在选项卡之间切换。请注意,在内部,它仅存储在选项卡焦点中的“哪个小部件跟随哪个”。设计器中的编号只是为了使这个“链接”可见。但是,此变体的最大问题是,无论何时从 UI 中添加或删除某些内容,您都必须重做整个过程。
因此,您应该适当地使用第二个变体并在调用 setupUi 函数后在代码中执行制表符。这是通过QWidget::setTabOrder
函数完成的。它告诉每个小部件在获得焦点并按下选项卡时接下来要关注哪个小部件。一个简单的例子是:
MyClass::MyClass(QWidget *parent) :
QWidget{parent},
ui{new Ui::MyClass}
{
ui->setupUi(this);
QWidget::setTabOrder(ui->outerTabBar, ui->innerTabBar);
QWidget::setTabOrder(ui->comboBox1, ui->button1);
// ....
}
推荐阅读
- vba - 如何在 chrome 中使用 VBA + SELENIUM 计算类中的元素?
- ios - 如何获取媒体播放器的时间位置
- php - 根据查询参数重写
- node.js - nodejs/express express.createserver 不是函数
- python - 将熊猫系列的特定小数位数写入文本文件
- c# - 如何维护/证明 HttpClient 和 asp 核心之间启用 cookie 的请求的身份验证?
- php - LARAVEL:在 URL 中显示 slug 而不是 ID - 类别列表
- c# - 在 C# 中反序列化 json 字符串的问题
- python - 如何修复错误:mtrand.RandomState.choice 模块的“ValueError:‘a’和‘p’必须具有相同的大小”?
- xml - 需要在 XML 字符串中复制标签