![](/img/trans.png)
[英]how to set onclick signal for all qlineedit to open a widget for keyboard and send data back?
[英]Widget cant send signal if it is disabled
我有一個基本問題
有一個按鈕可以啟用小部件,如下所示:
connect(ui->pushButton_currOnOne, &QPushButton::clicked, ui->widget_currentOne, &CurrentButtonOne::setEnabled);
並且此小部件連接到插槽以調整值:
connect(ui->widget_currentOne, &CurrentButtonOne::getValue, this, &stageProgram::setCurrOnChannelOne);
插槽是:
void stageProgram::setCurrOnChannelOne(unsigned int current_uA)
{
tetra_grip_api::stimulation_set_current( m_channelOne, current_uA); // second argument I get as signal from the widget
}
但是如果小部件被禁用,我現在需要的信號值應該是0
(意味着current_uA = 0
)
我正在考慮調用不同的插槽並設置current_uA = 0
。 看來不可能了。。
我嘗試使用Lambda
connect(ui->widget_currentOne, &CurrentButtonOne::getValue,
[this](unsigned int current_uA) { setCurrOnChannelOne(ui->widget_currentOne->isEnabled() ? current_uA : 0); } );
//this does not send 0 when it is disabled
您能建議一種在禁用小部件時發送零信號的方法嗎?
我認為最好為CurrentButtonOne
定義以下插槽:
void disableMe() {
//Disable
setDisabled(true);
//Reset current_uA
current_uA = 0;
}
然后按如下方式連接信號和插槽:
connect(ui->pushButton_currOnOne, &QPushButton::clicked, ui->widget_currentOne, &CurrentButtonOne::disableMe);
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.