компонент класса, созданный в куче после переноса самого обьекта в каком потоке окажется?
qt, QThread, moveToThread, GUI поток
Привет ВСем! Итак вопрос такой: Есть класс, в полях которого есть указатель на объект наследник от QDialog. Я создаю обьект основного класса, в конструкторе этого класса я создаю обьект в динамической памяти - указатель на наследника QDialog. Обьеект оснновного класса далее я перевожу из GUI потока в другой. Обьект в поле основного класса который я создал динамически в его конструкторе, остается в GUI потоке. Почему при вызове exec у наследника QDialog создается форма диалоога и все виснет?
Base.h class Base { public: Base(); private: QDeriveDialog* m_DeriveDialog; } Base.cpp: Base::Base { m_DeriveDialog = new QDeriveDialog(); } ... в основной программе: qDebug() << thread(); // запомним поток GUI QThread thr = new QThread; Base* base = new Base; base->moveTothread(thr); ... Base.cpp: void process() { qDebug() << m_DerivedDialog->thread; // проверяю к какому потоку принадлежит объект // и он равен потоку GUI, if(m_DerivedDialog->exec() == QDialog::Rejected) // однако при вызове диал.окна, в нем
// все виснет, окно появляется только контуром,
// все остальное не прорисовывается и курсор в
// колесико превращается ret = false; ... }
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!
Пікірлер
m
- molni99
- Қаз. 26, 2024, 1:37 Т.Ж.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:80ұпай,
- Бағалау ұпайлары4
m
- molni99
- Қаз. 26, 2024, 1:29 Т.Ж.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:20ұпай,
- Бағалау ұпайлары-10
FФ
- FONLY- ФОНЛИ
- Қаз. 25, 2024, 10:04 Т.Ж.
C++ - Тест 003. Условия и циклы
- Нәтиже:42ұпай,
- Бағалау ұпайлары-8
Соңғы пікірлер
Qt/C++ - 025-сабақ. Qmake утилитасымен құрастыру үшін жоба файлдарын жасау where to buy priligy It helps keep bones strong, nerves and muscles working properly, and blood sugar under control
Джанго - Сабақ 029. Сайтқа жеке хабарламалар мен чаттар қосу - 1 бөлім priligy at walgreens ortho ciprofloxacin tablet uses in telugu Republicans in Congress have chastised Obama s top health adviser, Health and Human Services Secretary Kathleen Sebelius, …
Linux жүйесінде файлдарды қалай көшіруге болады In dogs, it is used to facilitate synchronized cardioversion of atrial fibrillation buy priligy usa
Qt тілінде ойын қалай жазылады - 3-сабақ. Басқа объектілермен әрекеттесу priligy otc I routinely do not tell patients and or parents of patients with atopic dermatitis to avoid glutamates in food
QML - 020-сабақ. Qt Creator бағдарламасында Android манифестімен жұмысты бастау PMID 34322115 Free PMC article pastillas priligy en mexico
Енді форумда талқылаңыз
добавить qlineseries в функции The information provided in Dosage Posology and method of administration of Tamoxifen Actavis is based on data of another medicine with exactly the same composition as the Tamoxifen Actavis …
IscanderCheҚаз. 31, 2024, 3:43 Т.Қ.
Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
ИМ
Реализация навигации по разделам Спасибо Евгений!
Игорь МаксимовҚаз. 3, 2024, 4:05 Т.Ж.
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
Добрый день!
В коде я указал, что он не перенёсся.
А я вам сказал, что так делать в принципе нельзя. Нечего пытаться делать то, чего делать нельзя и о чём сказано в документации. Я не вижу смысла даже проверять куда перенёсся объект, поскольку в документации сказано, что подобный подход, который вы попытались применить недопустим.
Нужно работать с данными в других потоках и возвращать результат расчётов в GUI-поток для отображения в виджетах.
Попытка перенести виджет в поток, отличный от GUI поток как правило либо не имеет эффекта, либо ложит программу.
ТАК ДЕЛАТЬ НЕЛЬЗЯ