2014-01-19 4 views
1

В основном я делаю простую программу калькулятора, чтобы понять основы GUI C++, однако я получаю сообщение об ошибке, ведущем к строке коды я имею в void MainWindow::addx() к label -> setText(c); с сообщением об ошибке в:Qt C++ GUI Отображение целых чисел на ярлыках?

invalid user-defined conversion from 'int' to 'const QString&'[-fpermissive] 

Я действительно не знаю, что это сообщение об ошибке означает, что я предполагаю, что это означает, что я не могу отобразить целое число на ярлыке. Я просто хотел знать, могу ли я отображать целое число на моем ярлыке или мне нужно использовать другой виджет.

class MainWindow() { 
    int a, b, c; 
    QLabel * label; 
    ... 
}; 

void MainWindow::addx() 
    c = a + b; 
    label -> setText(c); 
} 
+0

У меня есть серьезное предложение: просто потому, что вы * можете * легко копировать и вставлять много кода при использовании компьютера, это не значит, что здесь вы должны задавать вопросы. Пожалуйста, оцените время и готовность помочь всем здесь, не злоупотребляя нами стенами текста. Отображение вашего кода не означает бездумное копирование. –

ответ

2

Вы должны преобразовать его:

firstnumberx(); 
secondnumberx(); 
c = a+b; 
label->setText(QString::number(c)); 
+0

Спасибо, что сработало! Но почему-то это не выводит c, а большое случайное число. – user3183586

+0

@ user3183586 Возможно, вы не читаете значения spinners для a и b перед добавлением (таким образом, a и b являются случайным содержимым памяти)? – prajmus

+0

Я думаю, что прочитал значения с помощью b = spinner-> value(); я не уверен. – user3183586

3

Это должно работать ..

label -> setText(QString::number(c)); 

Если вам нужно добавить несколько число внутри некоторой строки, вы можете попробовать ниже ..

label -> setText(QString("%1").arg(c)); 
+0

Спасибо, что компилируется сейчас! Однако, когда я пытаюсь добавить два числа, он дает случайное 7-значное число. – user3183586

+0

@ пользователь3183586 ответ редакция .. вы можете попробовать QString :: arg .. –

+1

@ пользователь3183586 много ..? это вне диапазона или int? –

1

QLabel имеет setNum() методы, принимающая int или double аргументов:

label->setNum(c); 

В setNum() методах форматирования прилагаемого номера, а затем установить text свойства с отформатированным значением. В документации не указывается, какой язык используется для форматирования, поэтому вы можете поэкспериментировать.

+0

setNum() отлично работает в моей программе – Kiribati

Смежные вопросы