Я работаю с приложением Qt, которое использует XML-файл для создания пользовательского интерфейса через компилятор пользовательского интерфейса Qt.Динамическая таблица стилей Qt с компилятором пользовательского интерфейса
У меня нет доступа к коду, который содержит каждый виджет (я делаю, но компилятор Qt UI перегенерирует его каждый раз), поэтому я не могу добавить другой метод в класс, который он генерирует.
Я пытаюсь сделать setStyleSheet на одном из виджетов QLineEdit, но он дает мне предупреждение QPixmap: It is not safe to use pixmaps outside the GUI thread
, а затем, в конце концов, ошибки seg. После того, как я отказался от этого маршрута, я решил проверить наличие двух копий каждого виджета, каждый из которых требует значений стилей. Затем я бы активировал QLineEdit::hide()
и QLineEdit::show()
на виджетах по мере необходимости, которые, как я думал, будут работать.
Это не так. Теперь программа выплескивает QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread
всякий раз, когда запускается.
Что можно сделать, чтобы исправить это? Мне нужно динамически изменять таблицу стилей виджета, но, похоже, не в состоянии сделать это каким-либо образом.
вы в основном потоке (тот, где 'был запущен экземпляр QApplication'), когда вы пытаетесь применить таблицу стилей? – jpo38
Я не. Это в отдельном потоке. Это позволяет мне изменить значение текста через 'setText (" text ")', но я не могу установить таблицу стилей. –
Не удивляйтесь, если он сбой, проверьте ответ Кубы – jpo38