crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Как показать QLabel...
Serg_yl
  опции профиля:
сообщение 7.3.2011, 22:01
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 3
Регистрация: 7.3.2011
Пользователь №: 2480

Спасибо сказали: 0 раз(а)




Репутация:   0  


Всем добрый вечер!

Проблема в следующем.

Создал QLabel в одной функции, его заполнение происходит из другой функции (при этом хочется совместить строки Ответ: число). При сборке, Creat ругатется что не видит этот Qlabel. Как правельно написать эту строку записи в QLabel?


TRPO::TRPO(QWidget *parent)
    : QWidget(parent)
{
QLabel *formyla = new QLabel ("Ответ: ");
}
void TRPO::slotFuncCos()
{
...Вычисления...
formyla->setText(QString::number(i));
}


Спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Командор
  опции профиля:
сообщение 7.3.2011, 22:07
Сообщение #2


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 7.3.2011
Пользователь №: 2478

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Serg_yl @ 7.3.2011, 22:01) *
Всем добрый вечер!

Проблема в следующем.

Создал QLabel в одной функции, его заполнение происходит из другой функции (при этом хочется совместить строки Ответ: число). При сборке, Creat ругатется что не видит этот Qlabel. Как правельно написать эту строку записи в QLabel?

Спасибо!


QLabel нужно объявить в описании класса, а в конструкторе просто создавать. А у тебя объявляется в конструкторе, тут же создается, а при выходе из конструктора (а это обычная функция) объект уничтожается.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Serg_yl
  опции профиля:
сообщение 7.3.2011, 22:24
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 3
Регистрация: 7.3.2011
Пользователь №: 2480

Спасибо сказали: 0 раз(а)




Репутация:   0  


Спасибо! Все заработало так как надо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 8.3.2011, 0:03
Сообщение #4


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Командор, Serg_yl,
вам обоим не мешало бы почитать основы С++
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Командор
  опции профиля:
сообщение 8.3.2011, 0:13
Сообщение #5


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 7.3.2011
Пользователь №: 2478

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(kwisp @ 8.3.2011, 0:03) *
Командор, Serg_yl,
вам обоим не мешало бы почитать основы С++


Я с Делфи переползаю, так что в С++ новичок, где моя ошибка?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 8.3.2011, 7:18
Сообщение #6


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

Спасибо сказали: 40 раз(а)




Репутация:   6  


Цитата(Командор @ 8.3.2011, 2:13) *
Я с Делфи переползаю, так что в С++ новичок, где моя ошибка?


В данном случае QLabel не удаляется при выходе из функции, просто его видно только в этой функции. Области видимости.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 9.3.2011, 7:55
Сообщение #7


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


В данном случае имеем утечку памяти :)
Цитата(Serg_yl @ 8.3.2011, 0:01) *
TRPO::TRPO(QWidget *parent)
: QWidget(parent)
{
QLabel *formyla = new QLabel ("Ответ: ");
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 10.3.2011, 7:18
Сообщение #8


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

Спасибо сказали: 40 раз(а)




Репутация:   6  


Цитата(Алексей1153 @ 9.3.2011, 9:55) *
В данном случае имеем утечку памяти :)
Цитата(Serg_yl @ 8.3.2011, 0:01) *
TRPO::TRPO(QWidget *parent)
: QWidget(parent)
{
QLabel *formyla = new QLabel ("Ответ: ");
}



Мне кажется, что если конструктор будет вызваться один раз, то не критично, при закрытии приложения это подотреться, но конечно же лучше или следить и удалять такое, или хотя-бы указывать родителя, чтобы этот QLabel удалился при удалении родителя. Кстати, достаточно указать родителя у главного Layout'а, который отвечает за размещение всех элементов формы.

Сообщение отредактировал silver47 - 10.3.2011, 7:19
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 13:24