Size: a a a

2021 June 25

D

Dmitriy in Qt
Попробуй вывести GetLastError() сразу после start()
Не забудь включить #include <windows.h>
источник

SD

Sergey Dubovik in Qt
Ребят, я уже обращался сюда, но что то не смог найти решения. Попробую еще раз. Есть вот такой простой код: https://pastebin.com/fbQieAFf
Проблема в том, что вылетает segmentation fault на деструкторе синглтона. Ошибка в QThreadPrivate::finish там, как я понял, идет обращение к нулевому указателю на поток. Если объект класса singleton создавать на стеке, то есть не статическим его сделать, а создать внутри функции main, то все ок работает. Если в функции show закомментировать все, что связано с QApplication и QMessageBox, а просто, например, вывести сообщение на экран, то все ок. Я понимаю, что код не совсем корректный с точки зрения, что UI события должны обрабатываться в главном потоке, но такой вариант тоже работает (если объект класса singleton сделать не статическим). Я уже все перепробовал, но все равно падает segmentation fault.
Если у кого есть идеи почему так происходит и как это пофиксить, поделитесь пожалуйста
источник

SD

Sergey Dubovik in Qt
На винде, кстати, аналогичное поведение
источник

M

Mr.Mait in Qt
Зачем гуи в другом потоке запускать?
источник

SD

Sergey Dubovik in Qt
Мне самому это не нравится =)
Суть в том, что этот код используется в динамической библиотеке, и она должна отображать некоторый отчет. Там архитектура не очень хорошо выстроена, поэтому приходится в другом потоке отображать.
Я понимаю, что мне надо не в этом коде искать проблему, а менять архитектуру, чтобы код соответствовал документации Qt, но пока нет такой возможности.
источник

S

Sergey eSKon in Qt
я такую задачу решал
источник

S

Sergey eSKon in Qt
всё что вам нужно сделать - создать поток средствами stdlib и в нём запустить цикл QApplication и тд - всё как в стандартном main
источник

S

Sergey eSKon in Qt
можете глянуть тут: https://github.com/eSKond/QuikMultiBridge - правда там много для вас лишнего, но если вопросы будут пишите в личку
источник

SD

Sergey Dubovik in Qt
Спасибо
источник

M

Mr.Mait in Qt
Запустил код. У тебя show вызывается два раза, первый раз нормально выполняется, второй раз будто завершается "в середине" функции. Т.е. доходит до QApplication app(argc, argv), появляется ошибка QObject::~QObject: Timers cannot be stopped from another thread, приложение завершается с выводом Finish и падает
источник

S

Sergey eSKon in Qt
там сильно наворочено - явно много лишнего. мьютексы какие-то, кондишны. Всё, что нужно - просто запустить main как thread
источник

jp

jon pedro in Qt
Добрый день. Хочу сделать одно графическое окно таким, чтобы его визуальные элементы и события определялись файлом настроек. Использовать для этого формат ini норм или ещё какие варианты могут быть?
источник

SD

Sergey Dubovik in Qt
На мьютексах и условных переменных реализован механизм ивентов.
источник

SD

Sergey Dubovik in Qt
Спасибо, буду пытаться понять почему так
источник

v

vyacheslav@deepin:~$ in Qt
Лучше жсон
источник

v

vyacheslav@deepin:~$ in Qt
Более гибкий
источник

jp

jon pedro in Qt
Как это гуглить?
источник

v

vyacheslav@deepin:~$ in Qt
Т9 етить его
источник

jp

jon pedro in Qt
Спасибо) попробую и с ним поиграться
источник

v

vyacheslav@deepin:~$ in Qt
Там более гибкая система вложенности
источник