0

我想连接 with以便他们执行相同QToolButtons的操作。QButtonGroupQRadioButtons

这是代码:

QToolButton *A=new QToolButton();
A->setCheckable(true);
QButtonGroup *group = new QButtonGroup();

group->addButton(A);
group->addButton(B);

CLASSB *classB=new CLASSB(); 
connect(A, SIGNAL(clicked(bool)),classB->radioA , SLOT(toggle()));
connect(B, SIGNAL(clicked(bool)), classB->radioB, SLOT(toggle()));

A <->A1 // clicking on tool button should automatically enable radiobutton and should perform the action in radio button
B<->B1

我试过connect(A,SIGNAL(clicked(bool)),A1,SLOT(setChecked(bool)));了,但没有用。

4

1 回答 1

0

如果您的 QToolButton 不可检查,它将仅false作为信号参数传递。

来自QAbstractButton文档:

当按钮被激活(即当鼠标光标在按钮内时按下然后释放)、键入快捷键或调用 click() 或 animateClick() 时会发出此信号。值得注意的是,如果您调用 setDown()、setChecked() 或 toggle(),则不会发出此信号。

如果按钮是可检查的,如果按钮被选中,checked 为真,如果按钮未被选中,则为假。

解决方案连接到切换插槽:

connect(A, SIGNAL(clicked(bool)), A1, SLOT(toggle()));
于 2017-07-14T12:15:55.973 回答