• 5965阅读
  • 9回复

[提问]在线坐等回答,急急急急急急急急 [复制链接]

上一主题 下一主题
离线111420211
 
只看楼主 倒序阅读 楼主  发表于: 2011-08-11
关键词: 求助
<DIV id=read_tpc mb10?>两个QRadioButton按钮在同一个widget上面,当一个QRadioButton 按下时另一个QRadioButton 也跟着按下。
我们假设第一个按钮是a,第二个是b,槽函数myslot()是将b置为按下的语句。
那么connect(a,SIGNAL(clicked()), ??, SLOT(myslot()))中??的位置应该是什么才能保证按下a后b也跟着变
离线tangxunmin

只看该作者 1楼 发表于: 2011-08-11
如果两个radiobutton都是这个类的成员,myslot也是这个类的成员函数,??应该是this啊!
离线111420211
只看该作者 2楼 发表于: 2011-08-11
回 1楼(tangxunmin) 的帖子
this的话会出段错误
离线luoyang

只看该作者 3楼 发表于: 2011-08-11
回 2楼(111420211) 的帖子
问题解决没有?
离线111420211
只看该作者 4楼 发表于: 2011-08-11
回 3楼(luoyang) 的帖子
没有
离线wxj120bw

只看该作者 5楼 发表于: 2011-08-11
回 楼主(111420211) 的帖子
先不管那个 多个QRadioButton按钮如果在同一界面,只能且最多选一个。所以你用QButtonGroup分开这两个QRadioButton按钮。
this段出错,贴下connect语句所在的函数。
离线111420211
只看该作者 6楼 发表于: 2011-08-12
回 5楼(wxj120bw) 的帖子
#include "main.h"
#include <string.h>
#include <stdio.h>
#include <QLayout>
#include <QButtonGroup>
MyWidget::MyWidget(QWidget *parent):QWidget(parent)
{
        setMinimumSize(200, 200);
        QRadioButton *r1 = new QRadioButton("1",this);
        QRadioButton *r2 = new QRadioButton("2",this);
        QRadioButton *r3 = new QRadioButton("3",this);
        QRadioButton *r4 = new QRadioButton("4",this);
        QRadioButton *r5 = new QRadioButton("5",this);
        QRadioButton *r6 = new QRadioButton("6",this);
        QRadioButton *r7 = new QRadioButton("7",this);
        QRadioButton *r8 = new QRadioButton("8",this);
        QRadioButton *c1 = new QRadioButton("1",this);
        QRadioButton *c2 = new QRadioButton("2",this);
        QRadioButton *c3 = new QRadioButton("3",this);
        QRadioButton *c4 = new QRadioButton("4",this);
        QRadioButton *c5 = new QRadioButton("5",this);
        QRadioButton *c6 = new QRadioButton("6",this);
        QRadioButton *c7 = new QRadioButton("7",this);
        QRadioButton *c8 = new QRadioButton("8",this);
        QVBoxLayout *butt1 = new QVBoxLayout();
        QVBoxLayout *butt2 = new QVBoxLayout();
        butt->addLayout(butt1);
        butt->addLayout(butt2);        
butt1->addWidget(r1);
        butt1->addWidget(r2);
        butt1->addWidget(r3);
        butt1->addWidget(r4);
        butt1->addWidget(r5);
        butt1->addWidget(r6);
        butt1->addWidget(r7);
        butt1->addWidget(r8);


        butt2->addWidget(c1);
        butt2->addWidget(c2);
        butt2->addWidget(c3);
        butt2->addWidget(c4);
        butt2->addWidget(c5);
        butt2->addWidget(c6);
        butt2->addWidget(c7);
        butt2->addWidget(c8);
        QButtonGroup *zu1 = new QButtonGroup(this);

        zu1->addButton(r1, 0);
        zu1->addButton(r2, 1);
        zu1->addButton(r3, 2);
        zu1->addButton(r4, 3);
        zu1->addButton(r5, 4);
        zu1->addButton(r6, 5);
        zu1->addButton(r7, 6);
        zu1->addButton(r8, 7);

        QButtonGroup *zu2 = new QButtonGroup(this);


        zu2->addButton(c1, 0);
        zu2->addButton(c2, 1);
        zu2->addButton(c3, 2);
        zu2->addButton(c4, 3);
        zu2->addButton(c5, 4);
        zu2->addButton(c6, 5);
        zu2->addButton(c7, 6);
        zu2->addButton(c8, 7);

        connect(c1, SIGNAL(clicked()), this, SLOT(myslot()));
void MyWidget::myslot()
{
    r1->setCheckable(true);
    r1->setChecked(true);
    r1->setAutoRepeat(true);
    r1->setAutoExclusive(true);
}
离线wxj120bw

只看该作者 7楼 发表于: 2011-08-12
回 6楼(111420211) 的帖子
connect语句还提示段出错吗 mySlot函数为什么那样写?
离线tangxunmin

只看该作者 8楼 发表于: 2011-08-14
Re:回 5楼(wxj120bw) 的帖子
引用第6楼111420211于2011-08-12 16:53发表的 回 5楼(wxj120bw) 的帖子 :
#include "main.h"
#include <string.h>
#include <stdio.h>
#include <QLayout>
#include <QButtonGroup>
.......


信号跟槽连接  要带参数的啊  把参数带上试试
离线tangxunmin

只看该作者 9楼 发表于: 2011-08-14
connect(c1, SIGNAL(clicked(bool)), this, SLOT(myslot(bool)));
void MyWidget::myslot(bool checked)
{
    r1->setCheckable(true);
    r1->setChecked(true);
    r1->setAutoRepeat(true);
    r1->setAutoExclusive(true);
}
快速回复
限100 字节
 
上一个 下一个