2016-01-24 68 views
0

使用Qt creator 3.5.1并创建一个简单的gui。从字符串列表数据中的qcombo框中获取数据

我想知道如何从组合框是在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"); 

回答

0

你初始化str1和str2一次(使用“日本”),并且它们永远不会改变(根据你的代码)。如果您想在按下按钮时获得当前的组合框文本,则需要在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); 
     } 
} 
+0

哦,非常感谢你,它的作品就像一个魅力。你是什​​么意思,我用“日本”初始化它,从来没有改变,是不同的初始化在构造函数比在私人槽功能?为什么它在“日本”的构造函数中初始化一次? –

+0

我的意思是在'ui-> comboBox-> addItems(list);''comboBox''后有4个元素,它的当前元素是“Japan”。然后你将这个值赋给str1。所以当你在插槽中检查它仍然有价值“日本”,而当前值的comboBox可以是不同的。 –

+0

好的,谢谢你的帮助 –