Qt動態生成界面並通過拉姆達獲取其返回值


代碼:

QDialog* log = new QDialog(this);
log->deleteLater();
log->setWindowTitle("新增故障");
log->setGeometry(QCursor::pos().x(),QCursor::pos().y(),200,100);
log->setMinimumSize(200,100);

QLabel* lel = new QLabel(log);
lel->setText("請選擇故障碼:");
QComboBox* box = new QComboBox(log);box->addItem("123");
QHBoxLayout* hLayout1 = new QHBoxLayout();
hLayout1->addWidget(lel);
hLayout1->addWidget(box);


QPushButton* okBtn = new QPushButton(log);
QPushButton* clsBtn = new QPushButton(log);
okBtn->setText("確定");
clsBtn->setText("取消");
QObject::connect(okBtn, &QPushButton::clicked,log,[=]() { log->done(RET_OK); }); QObject::connect(clsBtn,&QPushButton::clicked,log,[=]() { log->done(RET_ERR); });
QHBoxLayout* hLayout2 = new QHBoxLayout();
hLayout2->addWidget(clsBtn);
hLayout2->addWidget(okBtn);

QVBoxLayout* vLayout = new QVBoxLayout();
vLayout->addItem(hLayout1);
vLayout->addItem(hLayout2);

log->setLayout(vLayout);
if(RET_OK == log->exec())
{
    qDebug()<<"故障碼:"<<box->currentText();
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM