私はQTクリエーターでQtを使用して簡単な電卓を作成していますQCombobox(操作を含む: '+'、 '-'、 '*'、'/')から値をintに変換したいので、これを使用しました:
// operation is the name of my QComboBox :)
QVariant i = ui -> operation -> itemData(ui -> operation -> currentIndex());
int val = i.toInt();
i の値を出力してテストしようとすると、次のようになります。
printf("valeur %d \n",i);
出力
バルール 1219552
バルール 1219552
バルール 1219552
バルール 1219552
バルール 1219552
変換は、操作のいずれかを選択するたびに、QComboBox のインデックスに対応していないのと同じ値を私に与えます。しかし、それは追加操作を成功させます!!!
これは、私が達成しようとしていることを示す穴ファイルです:
#include "dialog.h"
#include "ui_dialog.h"
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this); // lance la construction de la fenêtre.
connect(ui->boutonEgale, SIGNAL(clicked()), this,SLOT(calculerOperation()));
}
Dialog::~Dialog()
{
delete ui;
}
void Dialog::calculerOperation()
{
QVariant i = ui->operation->itemData(ui->operation->currentIndex());
int val = i.toInt();
int rst = 0;
switch(val)
{
case 0: // +
rst = ui->nb1->value() + ui->nb2->value();
ui->result->setText(QString::number(rst));
break;
case 1: // -
rst = ui->nb1->value() - ui->nb2->value();
ui->result->setText(QString::number(rst));
break;
case 2: // *
rst = ui->nb1->value() * ui->nb2->value();
ui->result->setText(QString::number(rst));
break;
case 3: // /
rst = ui->nb1->value() / ui->nb2->value();
ui->result->setText(QString::number(rst));
break;
default:
rst = ui->nb1->value() + ui->nb2->value();
ui->result->setText(QString::number(rst));
}
}
グラフィカル インターフェイスを使用して、comboBox の値を設定しました
助言がありますか?