我有一个带组合框的输入对话框,可以在2个选项中进行选择。
void MainWindow::on_UpdateCPUAssmblyBtn_clicked()
{
if(!ui->AssemblyCpuSN->toPlainText().toStdString().empty())
{
QStringList items;
items << tr("OUT_FOR_PCB_REPAIR") << tr("PCB_SCRAPPED");
bool ok;
std::string scrapcode="";
QInputDialog* inputDialog = new QInputDialog();
inputDialog->setOption(QInputDialog::NoButtons);
QString item = inputDialog->getItem(NULL ,"Manufacturing Stage",
"Please select the reason for removing the old board :", items, 0,false,
&ok);
if(ok && !item.isEmpty())
scrapcode=item.toStdString();
/* Do something with scrapcode */
}
else
{
QPixmap pix("icons/angry1.png");
mbox->setIconPixmap(pix);
mbox->setWindowTitle("ERROR");
mbox->setText("Disassociation is not successful.CPU SN is empty.");
mbox->show();
}
}
如何从QInputDialog中删除按钮?我正在使用&#39; NoButtons&#39;旗帜,但它仍然没有帮助。坚持建议任何其他方法。
答案 0 :(得分:3)
QInputDialog::getItem
方法是static method。换句话说,它与您的实例化对象无关(即inputDialog
)。您应该使用以下代码段。
QInputDialog* inputDialog = new QInputDialog();
inputDialog->setOption(QInputDialog::NoButtons);
inputDialog->setComboBoxItems(items);
inputDialog->setWindowTitle("Manufacturing Stage");
inputDialog->setLabelText("Please select the reason for removing the old board :");
inputDialog->show();
结果:
关闭对话框后,您可以使用QInputDialog::textValue()
方法检索用户的选择。