Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Alex8lf от Декабрь 16, 2013, 07:41



Название: Как записать в label переменную int ?
Отправлено: Alex8lf от Декабрь 16, 2013, 07:41
Имеется переменная int. Требуется вывести её в лэйбл. Как это реализовать, чтобы компилятор не посылал меня куда подальше?


Название: Re: Как записать в label переменную int ?
Отправлено: mevn от Декабрь 16, 2013, 07:55
ui.label -> setText(QString::number(val));


Название: Re: Как записать в label переменную int ?
Отправлено: gil9red от Декабрь 16, 2013, 17:26
Код
C++ (Qt)
ui.label->setText( QString( "%1" ).arg( val ) );
:)


Название: Re: Как записать в label переменную int ?
Отправлено: Alex8lf от Декабрь 16, 2013, 21:52
Код
C++ (Qt)
ui.label->setText( QString( "%1" ).arg( val ) );
:)
Спасибо большое, это работает. Только не могли бы вы объяснить, что делает "QString( "%1" )" ?

ui.label -> setText(QString::number(val));

Этот способ тоже работает, спасибо.


Название: Re: Как записать в label переменную int ?
Отправлено: Bepec от Декабрь 16, 2013, 22:01
А можно и объединить...
Код:
ui.label->setText( QString( "%1" ).arg( QString::number(val,10) ) );


Название: Re: Как записать в label переменную int ?
Отправлено: Alex8lf от Декабрь 16, 2013, 22:05
А можно и объединить...
Код:
ui.label->setText( QString( "%1" ).arg( QString::number(val,10) ) );
А зачем? Второй способ проще. Или этот меньше ресурсов ест?


Название: Re: Как записать в label переменную int ?
Отправлено: Bepec от Декабрь 16, 2013, 22:18
Когда работаете с Qt забудьте слова "это меньше ресурсов есть".
Ну а совмещать просто ради интереса.
Равнозначные операции. Просто разный вид.

И совет - читай документацию. Открывай Assistant + Google translate и вперёд.


Название: Re: Как записать в label переменную int ?
Отправлено: gil9red от Декабрь 16, 2013, 22:23
Код
C++ (Qt)
ui.label->setText( QString( "%1" ).arg( val ) );
:)
Спасибо большое, это работает. Только не могли бы вы объяснить, что делает "QString( "%1" )" ?

ui.label -> setText(QString::number(val));

Этот способ тоже работает, спасибо.

То что в строке как %1 заменится на arg() и т.д. :)
Удобная штука! Позволяет сложные предложения довольно просто оформлять:
Код
C++ (Qt)
ui.label->setText( QString( "%1 в %2, не считая %3" ).arg( 3 ).arg( "баре" ).arg( "<username>" ) );
 
Какой порядок вызова arg(), такое %<номер> заменится на то, что передали в параметрах :)
и не обязательно в строке % в том же порядке писать - главное порядок вызывов arg сохранить :)


Название: Re: Как записать в label переменную int ?
Отправлено: Alex Custov от Декабрь 16, 2013, 23:30
А можно и объединить...
Код:
ui.label->setText( QString( "%1" ).arg( QString::number(val,10) ) );

штоэта


Название: Re: Как записать в label переменную int ?
Отправлено: Bepec от Декабрь 16, 2013, 23:44
То же что во втором и третьем сообщении этой темы :)


Название: Re: Как записать в label переменную int ?
Отправлено: carrygun от Декабрь 17, 2013, 04:24
Какой порядок вызова arg(), такое %<номер> заменится на то, что передали в параметрах :)
и не обязательно в строке % в том же порядке писать - главное порядок вызывов arg сохранить :)
Есть забавный баг (фича?): QString("text %1, %2").arg("another text %2").arg("test");