Здравствуйте, гость ( Вход | Регистрация )
BRE | Дата 23.1.2010, 19:38 |
сделал все по этому примеру, но постоянно натыкаюсь на ошибку После добавления в проект класса-наследника от QObject нужно выполнять qmake. Он настроит правила для генерации moc-файлов. ещё вопрос: сигнал надо объявлять только в описании класса? или надо создать его тело и чтобы он что-то возвращал? Да, только в описание класса. Тело его генерирует все тот-же moc. |
|
deex | Дата 23.1.2010, 15:19 |
сделал все по этому примеру, но постоянно натыкаюсь на ошибку debug/mainwindow.o:mainwindow.cpp:(.text$_ZN7CaptchaC1Ev[Captcha::Captcha:-1: error: undefined reference to `vtable for Outer' ещё вопрос: сигнал надо объявлять только в описании класса? signals: void mySignal(QString text); или надо создать его тело и чтобы он что-то возвращал? |
|
BRE | Дата 22.1.2010, 9:09 |
|
|
deex | Дата 22.1.2010, 8:17 |
BRE спасибо, за совет, но я понял только первый абзац т.е. надо в MainWindow сделать метод void updateLabel(QString newtext) { label->setText(newtext); label->repaint(); } а в Outer его вызывать windowClass->updateLabel("wait..") Правда в этом случае придется передавать ссылку на класс MainWindow в метод Outer тогда не понимаю чем это лучше и ещё не понял какой цикл надо крутить я давно занимаюсь вебом, пишу на php а подходы в системном программировании мне неизвестны, поясните их пожалуйста хотя бы минимальными примерами |
|
BRE | Дата 21.1.2010, 23:45 |
Не очень красивое решение с точки зрения архитектуры. IMHO лучше пусть объект класса Outer посылает сигнал о том, что его состояние изменилось, а уже в слоте, который может располагаться в класса MainWindow, менять значение QLabel. Насчет обновления QLabel в процессе работы метода, нужно крутить цикл обработки событий. Например, в цикле этого метода вызывать:
|
|
deex | Дата 21.1.2010, 23:42 |
ситуация такая есть основной класс MainWindow он содержит все виджеты и рисует главное окно в одном из слотов он создает внешний класс Outer, и передает в его метод ссылку на свой QLabel этот внешний класс меняет текст QLabel-а: label->setText('custom text'); Проблема заключается в том, что текст меняется лишь тогда, когда метод класса Outer заканчивает свою работу. Скажите пожалуйста, есть ли возможность обновить QLabel несколько раз по ходу работы метода Outer-класса? пробовал label->update(); не помогло получилось с repaint(); это правильный способ? |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 25.1.2025, 8:58 |