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 хостинг.Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Пожалуйста, авторизуйтесь или зарегистрируйтесь
- Дмитрий
- 7 мая 2024 г. 16:40
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:60баллов,
- Очки рейтинга-1
d
- dsfs
- 26 апреля 2024 г. 11:56
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:80баллов,
- Очки рейтинга4
Последние комментарии
Qt Linux - Урок 001. Автозапуск Qt приложения под Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Урок 007. Работаем с ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий Кононенко5 февраля 2024 г. 9:50
EVA25 декабря 2023 г. 18: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" она решит проблему , лично мне помогло.
Сейчас обсуждают на форуме
добавить qlineseries в функции в функции: "GPlotter::addSeries(QString title, QVector &arr)" я вызываю метод setChart(...), я в конструктор передал адрес на QChartView элемент
BlinCT5 мая 2024 г. 12:46
Best Indian Food Restaurant In Cincinnati OH Ready to embark on a gastronomic journey like no other? Join us at App india restaurant and discover why we're renowned as the Best Indian Food Restaurant In Cincinnati OH . Whether y…
Evgenii Legotckoi2 мая 2024 г. 21:07
IscanderChe30 апреля 2024 г. 11:22
В уроке 048 QThread объект существует в стеке класса, а вы создаёте в куче. То есть в уроке объект существует перед коннектом, а в вашем случае протухший указатель, который вместо объекта содержит мусор.
Так на стеке
Так в куче (heap), требуется создавать объект через оператор new, и соответственно контролировать удаление, чтобы не было утечек памяти
Создаём
И нужно будет в деструкторе потом удалять
Мда проглядел z что не создал поток( моя вина