crossplatform.ru

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

> как обновить QLabel?
deex
  опции профиля:
сообщение 21.1.2010, 23:42
Сообщение #1


Студент
*

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

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




Репутация:   0  


ситуация такая
есть основной класс MainWindow
он содержит все виджеты и рисует главное окно

в одном из слотов он создает внешний класс Outer, и передает в его метод ссылку на свой QLabel

этот внешний класс меняет текст QLabel-а:

label->setText('custom text');

Проблема заключается в том, что текст меняется лишь тогда, когда метод класса Outer заканчивает свою работу.

Скажите пожалуйста, есть ли возможность обновить QLabel несколько раз по ходу работы метода Outer-класса?

пробовал
label->update();

не помогло

получилось с repaint();
это правильный способ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
BRE
  опции профиля:
сообщение 22.1.2010, 9:09
Сообщение #2


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

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

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




Репутация:   44  


class Outer : public QObject
{
    Q_OBJECT

    void func()
    {
        for(;;)
        {
            // Что-то делаем
            emit stateChaged( ... )
            qApp->processEvent();
        }
    }

signals:
    void stateChanged( const QString & );
];


class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    MainWindow() : QMainWindow()
    {
        outer = new Outer;
        connect( outer, SIGNAL( stateChaged( const QString & ) ), SLOT( updateLabel( const QString & ) ) );
    }

public slots:
    void    updateLabel( const QString &str )
    {
        label->setText( str );
    }
};

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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




RSS Текстовая версия Сейчас: 27.12.2024, 14:56