从stringlist数据中的qcombo框中获取数据

时间:2016-01-24 15:55:30

标签: qt qcombobox

我正在使用Qt creator 3.5.1并创建一个简单的gui。

我想知道如何从qstringlist中的组合框获取数据,这是我的代码:

#include "mainwindow.h"
#include "ui_mainwindow.h"





MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
     list=(QStringList()<<"Japan"<<"Korea"<<"Philippines"<<"Us");
     ui->comboBox->addItems(list);
     ui->comboBox_2->addItems(list);
     str1 = ui->comboBox->currentText();
     str2 = ui->comboBox_2->currentText();
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    integer_value = ui->lineEdit->text().toInt();
    if(str1 == "Us" && str2 == "Philippines")
    {
        answer = integer_value * 47.73;
        result = result.number(answer);
        ui->label->setText(result);

    }
}

当我使用此代码时,它可以工作:

不使用QStringList:

ui->comboBox->addItem("Us");
ui->comboBox_2->addItem("Philippines");

1 个答案:

答案 0 :(得分:0)

初始化str1和str2一次(使用“Japan”),它们从未改变(根据您的代码)。如果要在按下按钮时获取当前的组合框文本,则需要在on_pushButton_clicked()插槽中进行检查。这样的事情:

void MainWindow::on_pushButton_clicked()
{
    str1 = ui->comboBox->currentText();
    str2 = ui->comboBox_2->currentText();
    if(str1 == "Us" && str2 == "Philippines")
        {
            answer = integer_value * 47.73;
            result = result.number(answer);
            ui->label->setText(result);
        }
}