Qt GUI中的单选按钮

时间:2014-03-10 18:43:23

标签: c++ qt user-interface

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

请帮助我!

2 个答案:

答案 0 :(得分:1)

  

当用户点击此按钮(...)时,我希望这样。我该怎么做?

QRadioButton

  

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

您还可以在QRadioButtons上写一个包装器,这样您就可以使用QSignalMapper将其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();
}

答案 1 :(得分:0)

我发现了我在找什么

UI-&GT; radio_button-&GT;调用setVisible(假);

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