c++ - 如何从 QInputDialog 中删除所有按钮

标签 c++ qt qdialog

我有一个带有组合框的输入对话框,可以在 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();

结果:

enter image description here

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

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

相关文章:

c++ - 如何通过 QtConcurrent 调用带参数的函数

c++ - 退出应用程序调用两次关闭事件

c++ - Qdialog执行的返回值

c++ - 如何在新线程(QThread)中使用一个进程(QProcess)?

c++ - 为什么我不能在类外定义返回类型 'pointer to struct'的函数?

c++ - 绘制圆轮廓的百分比

c++ - C 等效于 C++ decltype

c++ - Qpushbutton 图标出现在实际按钮的左侧,如何居中或拉伸(stretch)它?

C++/Qt : Just a LNK2019 and I don't know why

c++ - Qt。如何使用QtNetwork查看网络上的其他电脑?