2016-01-24 1 views
0

Im utilisant Qt creator 3.5.1 et créant un simple gui.Récupère les données de la boîte qcombo dans les données stringlist

Im se demandant comment obtenir des données de ComboBox qui est en QStringList est ici mon code:

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

    } 
} 

quand im en utilisant ce code, il fonctionne:

sans utiliser QStringList:

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

Répondre

0

Vous initialisez str1 et str2 une fois (avec "Japon"), et ils n'ont jamais changé (selon votre code). Si vous voulez obtenir le texte actuel de comboBox quand vous appuyez sur le bouton, vous devez le vérifier dans le logement on_pushButton_clicked(). Quelque chose comme ça:

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

Oh, merci beaucoup, ça fonctionne comme un charme. Que voulez-vous dire par l'initialiser par une fois avec "Japon" et n'a jamais changé, est-ce initialisation différente dans le constructeur que dans une fonction de slot privé? pourquoi s'initialise-t-il une fois dans le constructeur qui est "japan"? –

+0

Je veux dire qu'après 'ui-> comboBox-> addItems (liste);' 'comboBox' a 4 éléments et son élément actuel est" Japon ". Ensuite, vous affectez cette valeur à str1. Donc, quand vous le vérifiez dans la fente, il a toujours la valeur "Japon", alors que la valeur actuelle de comboBox peut être différente. –

+0

ok merci pour votre aide –