Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt-GUI中的单选按钮_C++_Qt_User Interface - Fatal编程技术网

C++ Qt-GUI中的单选按钮

C++ Qt-GUI中的单选按钮,c++,qt,user-interface,C++,Qt,User Interface,我正在使用Qt5.2.1,我制作了一个程序来做一些事情。我在其中添加了一个单选按钮(名为“others”),我希望当用户单击此按钮时,旁边会弹出一行编辑,并允许用户在其中输入一些内容。当用户单击另一个单选按钮时,该行编辑将消失。我该怎么做 请帮帮我 我希望当用户单击此按钮时(…)。我该怎么做 无论何时打开或关闭按钮,它都会发出toggled()信号。如果您想触发每个操作,请连接此信号 按钮改变状态的时间。使用isChecked()查看是否选择了特定按钮 您还可以在QRadioButtons上编

我正在使用Qt5.2.1,我制作了一个程序来做一些事情。我在其中添加了一个单选按钮(名为“others”),我希望当用户单击此按钮时,旁边会弹出一行编辑,并允许用户在其中输入一些内容。当用户单击另一个单选按钮时,该行编辑将消失。我该怎么做

请帮帮我

我希望当用户单击此按钮时(…)。我该怎么做

无论何时打开或关闭按钮,它都会发出
toggled()信号。如果您想触发每个操作,请连接此信号
按钮改变状态的时间。使用
isChecked()
查看是否选择了特定按钮

您还可以在
QRadioButtons
上编写一个包装器,这样您就可以将它们的
toggled(bool)
信号连接到该包装器的单个插槽
toggled(int)
,即。然后,您可以在这样的包装器中管理所有这些逻辑:

void RadioHelper::initialize( const std::vector<
                                   QSharedPointer<RadioHelperEntry> >& entries)
{
    entries_ = entries;
    mapper_.reset(new QSignalMapper(this));
    EntriesIterator it = entries_.begin();

    int i = 0;
    while ( it!=entries_.end())
    {
       connect(( *it)->button_, SIGNAL( toggled(bool)), mapper_.data(), 
                                                                   SLOT(map()));
       mapper_->setMapping( ( *it)->button_, (int)( *it)->mode_);
       it++;
       i++;
    }
    connect( mapper_.data(), SIGNAL( mapped(int)), this, SIGNAL( toggled(int)));
    connect( this, SIGNAL( toggled(int)), this, SLOT( updateValue(int)));
}

void RadioHelper::updateValue( int v)
{
    value_ = v;
    emit valueChanged();
}
void RadioHelper::initialize(const std::vector)<
QSharedPointer>(条目(&C)
{
条目=条目;
映射器重置(新的QSignalMapper(本));
EntriesIterator it=entries_u.begin();
int i=0;
while(it!=entries_uz.end())
{
connect((*it)->按钮,信号(切换(bool)),映射器\数据(),
槽(map());
映射器->设置映射((*it)->按钮(int)(*it)->模式);
it++;
i++;
}
连接(mapper.data(),信号(mapped(int)),这个,信号(toggled(int));
连接(这个,信号(切换(int)),这个,插槽(更新值(int));
}
void RadioHelper::updateValue(int v)
{
值=v;
emit valueChanged();
}

我找到了我要找的东西

用户界面->单选按钮->设置可见(假)


^帮助我获得了想要的结果

@RedAlert问题是我已经通过Qt设计器添加了单选按钮,所以我还没有真正编写任何代码。