![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
igor_bogomolov |
![]()
Сообщение
#11
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
по идее Qt сама выбирает тип соединения и указывать явно не нужно. Иногда нужно. MainWindow и ServerThread созданы с контексте одного потока поэтому м/у ниму тип соединения будет Qt::DirectConnectionМожно в принципе воспользоваться moveToThread, тогда тип соединения автоматически установится правильным |
|
|
Azazello |
![]()
Сообщение
#12
|
Студент ![]() Группа: Новичок Сообщений: 16 Регистрация: 17.4.2010 Пользователь №: 1635 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
igor_bogomolov, Litkevich Yuriy, большое спасибо за ответы.
Игорь, я попробовал сделать как Вы посоветовали, но, к сожалению, и это не помогло. Возможно, я просто что-то упустил, какую-нибудь мелоч. Выкладываю весь проект, может это внесет ясность, а то я уже и не знаю, что можно сделать. Перечитал уже сотню другую страниц форумов, ассистента и книжек, а результата никакого... |
|
|
igor_bogomolov |
![]()
Сообщение
#13
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
Блин, слепой я. Ты же ServerThread на стеке создаёшь. После исполнения функции он у тебя удаляется.
Сделай так
|
|
|
Azazello |
![]()
Сообщение
#14
|
Студент ![]() Группа: Новичок Сообщений: 16 Регистрация: 17.4.2010 Пользователь №: 1635 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Действительно, поставив создание потока на обработчик кнопки, я не учел то, что он не останется по выходу из функции. Теперь ясно, что означало "QThread: Destroyed while thread is still running".
Отладчиком стали видится данные вывода в QByteArray, но упорно продолжает вылетать с unexpectedly finished... И трассировать что-то нормально не выходит, не понятно ничего ![]() Я уже и, как советовали, выность ф-цию наружу пробовал,
объявляя класс в mainwindow.h и инициируя запуск в обработчике кнопки:
и все равно результат тот же ![]() |
|
|
igor_bogomolov |
![]()
Сообщение
#15
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
Держи тестовый пример. Он правда для Windows, поэтому если ты делаешь для Linux строчки
могут быть лишними, просто закоментируй---Добавлено-------------- Кратко, проблема просто в невнимательности. Ты делаешь доступ к несуществующему объекту Объекта process у тебя не существует, т.к. ты его не создал. То что ты создаешь в run это совершенно другой объект доступа до которого ты не имеешь. P.S. Мой пример тоже не без недостатков, но для демонстрации сойдёт ![]()
Прикрепленные файлы
|
|
|
Azazello |
![]()
Сообщение
#16
|
Студент ![]() Группа: Новичок Сообщений: 16 Регистрация: 17.4.2010 Пользователь №: 1635 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Кратко, проблема просто в невнимательности. И почему я так и думал ![]() Игорь, спасибо тебе громадное. И не только за пример, но и за все ответы, которые мне очень помогли не просто тупо переписать, а именно понять свою ошибку. Мой самый искренний респект тебе! |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 3.5.2025, 11:26 |