我有一个带有组合框的输入对话框,可以在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删除按钮?我正在使用'NoButtons'标志,但仍然没有帮助。建议使用其他方法。

最佳答案

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();


结果:

c&#43;&#43; - 如何从QInputDialog删除所有按钮-LMLPHP

对话框关闭后,您可以使用QInputDialog::textValue()方法检索用户的选择。

关于c++ - 如何从QInputDialog删除所有按钮,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39604035/

10-12 01:51