如何将TabFocus设置为QRadioButtons并将它们设置为2列

时间:2015-02-25 15:19:13

标签: qt tabs focus radio-group

我正在制作一个带有Qt 4.8.5的gui应用程序,它与键盘交互有关,因此小部件之间的所有逻辑都会抛出TabFocus。当我尝试放置4个radiobutton并发现你必须使用箭头而不是制表符和空格键时我发现了一个问题,所以稍微搜索一下我发现这个例子关于如何使用制表符进行操作:EXAMPLE

我添加了这个新类“CustomButtonGroup”并应用了它但我还有另一个问题:我有4个radiobuttons,我需要它们在2个不同的列中(左侧为qrb_1和qrb_2,qrb_3和qrn_4为正确的那一个)。为此,我使用了一些这样的布局:

  • VlayQRB:我在另一个小部件上面放置了radiobuttons然后 Hlay2
  • Hlay2:添加2个vboxlayout以将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);
    

问题在于,如果我这样做,当我按下无线电按钮上的空格时,程序意外关闭但是如果我只放qrb_1和qrb_2那么它的工作原理非常好所以我想这个程序变得疯狂了很多布局。

我怎么能应用CustomButtonGroup(它把我需要的标签和空格键的逻辑给我)放到我的情况下(我需要2个列中的4个单选按钮,所以我有2个按钮在右边,2个按钮在左)...

注意:我也试过,创建第二个CustomGroupBox并在那里添加qrb_3和qrb_4并且它工作正常然后,当然,我有两个选项检查为true(每个custombuttongroup一个)

非常感谢你。

1 个答案:

答案 0 :(得分:0)

请参阅QGrid布局,因为它的单个布局按钮组应按预期工作 http://qt-project.org/doc/qt-4.8/qgridlayout.html