我正在使用Qt5.2.1,我制作了一个程序来做一些事情。在其中我添加了一个单选按钮(名为“其他”)我希望当用户单击此按钮时,除此之外会弹出一个行编辑,并让用户在其中输入一些内容。当用户点击另一个单选按钮时,此行编辑消失。我该怎么做?
请帮助我!
答案 0 :(得分:1)
当用户点击此按钮(...)时,我希望这样。我该怎么做?
每当按钮打开或关闭时,它都会发出
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(假);
^帮助我获得了理想的结果