![]() |
|
![]() ![]() ![]() |
|
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
У меня сейчас идеологическая проблема возникла. По сути сейчас я пишу основное ядро программы. В прошлой версии при занесении или удалении данных из базы данных создавался диалог с прогрессбаром. Вот сейчас пытаюсь решить, если уж я пишу ядро, то каким боком мне сдался этот GUI внутри класса ? Врятли кто бы стал пихать в синглтон-класс гуевые окошечки. Походу надо передавать какую-нибудь callBack функцию или эмитить сигналы.
|
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 7 Всего: 162 |
SABROG, да, было такое. Я emittил сигналы в этом случае.
|
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
А для этого необходимо чтобы класс был на базе QObject'a ? У меня такая задумка. Я не хочу использовать processAllEvents, т.к. у меня имеется скажем 50 операций, который могут выполнятся по 2-3 минуты каждая, я сделал прогрессбар, но естественно даже с процессоллевентс все висит. Вот теперь думаю как сделать так, чтобы из ядра программы сэмитить сигнал, который бы не только создал поток и прогрессбар, но и увеличивал при этом счетчик на прогрессе O.o |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 16 Всего: 92 |
Наследовать от QObject надо. В чём проблема-то? Реализуешь негуёвую модель твоего пргресса (данные о прогрессе + сигналы для уведомления об его изменении). Затем при коннектишь гуй.
|
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Мне необходим такой функционал из негуишного класса:
- возможность менять ход прогресса - отменять прогресс - перехватывать отмену прогресса (юзер кликнул Cancel или крест) Это все мне может дать такая модель. Я создаю класс на базе QThread, куда пихаю QProgressDialog. Сам этот класс (QThread) создаю внутри негуишного класса, коннекчусь. Но в итоге получается что негуишный класс жестко привязан к GUI так или иначе. Но видать никуда от этого не деться, т.к. метод приватный и передать ссылку на объект QThread извне не получится. |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 16 Всего: 92 |
Ты создаёшь без всякого гуя класс, у которого есть:
Этот же класс производит сами действия. Или же он универсальный абстрактный с чисто виртуальным методом для действия + наследник для этой ситуации (а в будущем ещё для сотни). С гую коннектишься к началу пргресса - создаёшь диалог. На изменение меняешь пргресс-бар. На клик по канселу коннектишь слот отмены. Мешать гуй и бизнес-логику - ни в коем случае! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |