如何将 TabFocus 设置为 QRadioButtons 并将它们设置为 2 列
How to set TabFocus to QRadioButtons and set them into 2 columns
我正在使用 Qt 4.8.5 制作一个 gui 应用程序,它与键盘交互一起使用,因此小部件之间的所有逻辑都抛出 TabFocus。当我尝试放置 4 个单选按钮时发现了一个问题,发现你必须使用箭头而不是制表符和 spacebar 所以搜索了一下我发现了这个关于如何使用制表符来做到这一点的例子:EXAMPLE
我添加了这个新的 class“CustomButtonGroup”并应用了它,但我还有另一个问题:我有 4 个单选按钮,我需要它们位于 2 个不同的列中(qrb_1 和 qrb_2 在左侧,qrb_3 和 qrn_4 在右侧)。为此,我使用了一些这样的布局:
- VlayQRB:我在单选按钮上方有另一个小部件,然后
Hlay2
- Hlay2: 添加 2 个 vboxlayouts 将 radiobuttons 分成
2 列
- Vlay2L:用于 qrb_1 和 qrb_2
Vlay2R:用于 qrb_3 和 qrb_4
VlayQRB->addLayout(Hlay2);
Hlay2->addLayout(Vlay2L);
Hlay2->addLayout(Vlay2R);
Vlay2L->addWidget(qrb_1);
Vlay2L->addWidget(qrb_2);
Vlay2R->addWidget(qrb_3);
Vlay2R->addWidget(qrb_4);
CustomButtonGroup *cBG = new CustomButtonGroup;
qrb_1 = new QRadioButton(QString::fromUtf8(" Hi 1"));
qrb_2= new QRadioButton(QString::fromUtf8(" Hi 2"));
qrb_3 = new QRadioButton(QString::fromUtf8(" Hi 3"));
qrb_4 = new QRadioButton(QString::fromUtf8(" HI 4"));
cBG->addButton(qrb_1);
cBG->addButton(qrb_2);
cBG->addButton(qrb_3);
cBG->addButton(qrb_4);
问题是,如果我这样做,当我在单选按钮上按 space 时,程序会意外关闭,但如果我只输入 qrb_1 和 qrb_2,它会工作得很好所以我想程序会因为这么多布局之间的所有逻辑而变得疯狂。
知道如何将 CustomButtonGroup(它为我提供了我需要的选项卡和 spacebar 的逻辑)应用到我的案例中(我需要 2 列中的 4 个单选按钮,所以我有 2 个按钮右侧和左侧 2 个按钮)??
注意:我也尝试过,创建了第二个 CustomGroupBox 并在其中添加了 qrb_3 和 qrb_4 并且它工作正常但是当然,我有 2 个选项检查为真(每个选项一个自定义按钮组)
非常感谢。
查看 QGrid 布局,因为它是单一布局,您的按钮组应该按预期工作
http://qt-project.org/doc/qt-4.8/qgridlayout.html
我正在使用 Qt 4.8.5 制作一个 gui 应用程序,它与键盘交互一起使用,因此小部件之间的所有逻辑都抛出 TabFocus。当我尝试放置 4 个单选按钮时发现了一个问题,发现你必须使用箭头而不是制表符和 spacebar 所以搜索了一下我发现了这个关于如何使用制表符来做到这一点的例子:EXAMPLE
我添加了这个新的 class“CustomButtonGroup”并应用了它,但我还有另一个问题:我有 4 个单选按钮,我需要它们位于 2 个不同的列中(qrb_1 和 qrb_2 在左侧,qrb_3 和 qrn_4 在右侧)。为此,我使用了一些这样的布局:
- VlayQRB:我在单选按钮上方有另一个小部件,然后 Hlay2
- Hlay2: 添加 2 个 vboxlayouts 将 radiobuttons 分成 2 列
- Vlay2L:用于 qrb_1 和 qrb_2
Vlay2R:用于 qrb_3 和 qrb_4
VlayQRB->addLayout(Hlay2); Hlay2->addLayout(Vlay2L); Hlay2->addLayout(Vlay2R); Vlay2L->addWidget(qrb_1); Vlay2L->addWidget(qrb_2); Vlay2R->addWidget(qrb_3); Vlay2R->addWidget(qrb_4); CustomButtonGroup *cBG = new CustomButtonGroup; qrb_1 = new QRadioButton(QString::fromUtf8(" Hi 1")); qrb_2= new QRadioButton(QString::fromUtf8(" Hi 2")); qrb_3 = new QRadioButton(QString::fromUtf8(" Hi 3")); qrb_4 = new QRadioButton(QString::fromUtf8(" HI 4")); cBG->addButton(qrb_1); cBG->addButton(qrb_2); cBG->addButton(qrb_3); cBG->addButton(qrb_4);
问题是,如果我这样做,当我在单选按钮上按 space 时,程序会意外关闭,但如果我只输入 qrb_1 和 qrb_2,它会工作得很好所以我想程序会因为这么多布局之间的所有逻辑而变得疯狂。
知道如何将 CustomButtonGroup(它为我提供了我需要的选项卡和 spacebar 的逻辑)应用到我的案例中(我需要 2 列中的 4 个单选按钮,所以我有 2 个按钮右侧和左侧 2 个按钮)??
注意:我也尝试过,创建了第二个 CustomGroupBox 并在其中添加了 qrb_3 和 qrb_4 并且它工作正常但是当然,我有 2 个选项检查为真(每个选项一个自定义按钮组)
非常感谢。
查看 QGrid 布局,因为它是单一布局,您的按钮组应该按预期工作 http://qt-project.org/doc/qt-4.8/qgridlayout.html