Как запустить QThread чтобы он не вешал GUI? |
Здравствуйте, гость ( Вход | Регистрация )
Как запустить QThread чтобы он не вешал GUI? |
flareguner |
8.3.2010, 17:53
Сообщение
#1
|
Студент Группа: Участник Сообщений: 21 Регистрация: 16.11.2009 Пользователь №: 1231 Спасибо сказали: 0 раз(а) Репутация: 0 |
Я пробовал сделать так, как в примере в документации. Унаследовал QThread в классе и переопределил функцию void run(). Затем в другом приложении создал объект этого своего класса и запускаю его. GUI вешается и почти не отзывается. Большое спасибо тем, кто ответит.
Чуть не забыл: в классе наследующем поток мы ждем выполнения QProcess с waitForFinished( -1 ). |
|
|
SABROG |
9.3.2010, 0:18
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
|
|
|
flareguner |
9.3.2010, 0:45
Сообщение
#3
|
Студент Группа: Участник Сообщений: 21 Регистрация: 16.11.2009 Пользователь №: 1231 Спасибо сказали: 0 раз(а) Репутация: 0 |
вроде макрос Q_OBJECT делает что-то подобное. Если тролли поменяют объявление метода run() на такое, то возможно ошибок будет меньше:
Может я что-то путаю, но разве можно в дочернем классе переопределять private-элементы? Вроде бы только protected. |
|
|
SABROG |
9.3.2010, 0:56
Сообщение
#4
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Может я что-то путаю, но разве можно в дочернем классе переопределять private-элементы? Вроде бы только protected. Я не пробовал, но вроде как это ограничение не распространяется на чистые виртуальные функции. К тому же это опять не решит нашей проблемы, спецификатор доступа у наследуемого класса для такой функции можно выбрать любой Сообщение отредактировал SABROG - 9.3.2010, 1:00 |
|
|
Текстовая версия | Сейчас: 30.11.2024, 3:12 |