Qt невидимое поле со списком в сборке релиза (но не в сборке отладки) - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть приложение, которое до сих пор работало хорошо.Сегодня я обновил свой Ubuntu до 18.04 и, следовательно, переустановил все программные компоненты, включая Qt.

Теперь я испытываю довольно странное поведение.Когда я компилирую свое приложение в отладочной сборке, все правильно.Когда я переключаюсь на релизную сборку, некоторые поля со списком становятся невидимыми.

Странно то, что события по-прежнему работают, выпадающие списки все еще есть (но невидимы).Я знаю это, потому что я использую installEventFilter() с if(event->type() == QEvent::Enter), который меняет некоторые другие виджеты, если я наведите курсор мыши на поле со списком.Хотя поля со списком невидимы, события все равно работают, когда я наведу курсор на область, где будет находиться поле со списком.

К сожалению, я не знаю, что делает эту проблему, поэтому я не могу воспроизвести ее в минимальном примере.

Мой вопрос: кто-нибудь испытывал что-то подобное раньше?И: с чего мне начать искать ошибку?(Я не могу отладить его, потому что все правильно для отладочных сборок)

Кстати: я не знаю, связано ли это с этим, но когда я впервые попытался запустить приложение, я получил сообщение об ошибке, отсутствующее gl/gl.h,После того, как я обратился за помощью к моему другу в Google, я обнаружил, что OpenGL отсутствует, поэтому я установил его.

1 Ответ

0 голосов
/ 27 сентября 2018

Я бы пошел и искать неинициализированные переменные при настройке свойств комбинированного списка.Обычно в отладке даже унифицированным переменным присваивается фиксированное значение.

Или, может быть, вы устанавливаете свойства в утверждении, которое не компилируется в сборке выпуска?Например,

Q_ASSERT(...)

, что код между () будет пропущен во время сборки релиза.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...