Alexander10 марта 2020 г. 9:26
Ошибка c QThread, программа крашится при старте
Собственно шел по уроку 048 (кажется где перемещяют объект в поток) и столкнулся с падение программы на этапе коннектов как я понял. собственно вот код
#ifndef GUICORE_HPP #define GUICORE_HPP #include <QMainWindow> #include <QMessageBox> #include <QDialog> #include <QDialogButtonBox> #include <QLineEdit> #include <QGroupBox> #include <QFormLayout> #include <QThread> #include "swcore.hpp" struct ptClientListOnForm{ QHBoxLayout *pt; QLabel *laId; QLabel *laName; int id; }; QT_BEGIN_NAMESPACE namespace Ui { class GUICore; } QT_END_NAMESPACE class GUICore : public QMainWindow { Q_OBJECT public: GUICore(QWidget *parent = nullptr); ~GUICore(); QString timeStamp(); signals: void setPortServ(int port); void setAddrServ(quint32 ipAddr); void startServ(QThread::Priority pr = QThread::LowPriority); void shutdownServer(); private slots: void addToPlaneText(QString msg); void isAlive(bool alive); void newConnectionClient (int id,QString name); void deleteConnectionClient (int id); void on_pushButtonStartServer_clicked(); void on_pushButtonShutDownServer_clicked(); void on_pushButtonExit_clicked(); private: Ui::GUICore *ui; SWCore *swc; QThread *sysThread; ptClientListOnForm ptCl; QVector <ptClientListOnForm> arrPtCl; }; #endif // GUICORE_HPP ///это хедор
и кусок где происходит краш
GUICore::GUICore(QWidget *parent) : QMainWindow(parent) , ui(new Ui::GUICore) { ui->setupUi(this); swc = new SWCore; connect(this,&GUICore::startServ,sysThread,&QThread::start); connect(sysThread,&QThread::start,swc,&SWCore::slotStartServer); connect(sysThread,&QThread::terminate,swc,&SWCore::slotStopServer); swc->moveToThread(sysThread); }
Линка на весь проект если поможет
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Пожалуйста, авторизуйтесь или зарегистрируйтесь
d
- dsfs
- 26 апреля 2024 г. 4:56
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:80баллов,
- Очки рейтинга4
d
- dsfs
- 26 апреля 2024 г. 4:35
C++ - Тест 001. Первая программа и типы данных
- Результат:73баллов,
- Очки рейтинга1
Последние комментарии
Qt Linux - Урок 001. Автозапуск Qt приложения под Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Урок 007. Работаем с ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий Кононенко5 февраля 2024 г. 1:50
EVA25 декабря 2023 г. 10:30
Boost - статическая линковка в CMake проекте под Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
Qt/C++ - Урок 056. Подключение библиотеки Boost в Qt для компиляторов MinGW и MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
Сейчас обсуждают на форуме
DA
Unlock Your Aesthetic Potential: Explore MSC in Facial Aesthetics and Cosmetology in India Embark on a transformative journey with an msc in facial aesthetics and cosmetology in india . Delve into the intricate world of beauty and rejuvenation, guided by expert faculty and …
Dr Gangil Academics20 апреля 2024 г. 7:45
Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Евгений, добрый день! Такой вопрос. Верно ли следующее утверждение: Любое Android-приложение, написанное на Java/Kotlin чисто теоретически (пусть и с большими трудностями) можно написать и на C+…
Павел Дорофеев14 апреля 2024 г. 2:35
Вернуть старое поведение QComboBox, не менять индекс при resetModel Добрый день! У нас много проектов в которых используется QComboBox, в версии 5.5.1, когда модель испускает сигнал resetModel, currentIndex не менялся. В версии 5.15 при resetModel происходит try…
В уроке 048 QThread объект существует в стеке класса, а вы создаёте в куче. То есть в уроке объект существует перед коннектом, а в вашем случае протухший указатель, который вместо объекта содержит мусор.
Так на стеке
Так в куче (heap), требуется создавать объект через оператор new, и соответственно контролировать удаление, чтобы не было утечек памяти
Создаём
И нужно будет в деструкторе потом удалять
Мда проглядел z что не создал поток( моя вина