2016-01-24 28 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

好的,謝謝你的幫助 –