Ответ 1
Отредактируйте файл ui вне Qt Creator. Удалите строки с тегами "zorder". Затем откройте в Qt Creator и скомпилируйте его снова. Это работало для меня тогда отлично, предупреждение больше не появлялось.
Только одна ошибка, пока я не воспользуюсь этим для своих исследований!
Warning: Z-order assignment: " is not a valid widget.
FILE: qvvideoreaderblockwidget.ui
Нет номера строки, который пришел с ним. Я пробовал найти, но не видел открытую часть.
Что мне делать, чтобы правильно скомпилировать эту библиотеку?
Отредактируйте файл ui вне Qt Creator. Удалите строки с тегами "zorder". Затем откройте в Qt Creator и скомпилируйте его снова. Это работало для меня тогда отлично, предупреждение больше не появлялось.
Хорошо, у меня было это, и это тоже раздражало меня. Я не знаю, что случилось, но это несерьезно. Я полагаю, что взломать и переделать все макеты могут это исправить. Другие рамки имеют тенденцию к множеству предупреждений, но я новичок в Qt, а еще не один. Я пошел в другом редакторе и удалил строку, в которой говорилось (насколько я помню):
<z-order>verticalSpacer</z-order>
который был среди множества других строк, которые также были тэгами z-order. Я удалил строку с этим тегом и перестроил все. Проблема исчезла. Интересно, что все теги z-order исчезли из моего файла, когда я посмотрел на него дальше. Это, должно быть, ошибка, но, по-видимому, одно из немногих последствий; кроме тех, кто ненавидит видеть безмятежную красоту Qt испорченной.
В файле ui файл qvvideoreaderblockwidget.ui содержатся "продвигаемые виджеты"? Если это так, используйте диалог "Продвинутые виджеты" (Qt4-) для обеспечения того, чтобы заголовок продвигаемого класса виджетов был объявлен как "глобальный include".
Если пользовательский класс виджетов называется "MyWidget", а заголовок имеет имя "mywidget.h", а виджет участника должен быть назван "myWidget", uic будет генерировать код ui-класса следующим образом:
#include <mywidget.h>
class qvvideoreaderblockwidget
{
public:
MyWidget* myWidget;
// ...
};
Это случилось со мной, когда я удалил довольно большой кусок вещей в дизайнере. Исследование показало, что разработчику не удалось удалить тэг zorder, связанный с удаленным виджемом (который, кстати, содержал кучу других виджетов).
Удаление строки, как было предложено, устраняет проблему. Если у вас есть загрузка меток zorder, вам, вероятно, нужно быть осторожным, чтобы просто удалить ту, которая относится к удаленному элементу.
У меня была такая же проблема и удаление файла .exe из выходной папки (отладка или выпуск) перед запуском/компиляцией источника, решена проблема.
В моем случае я забыл добавить заголовочный файл моего класса GUI в .pro
, а его исходный файл добавлен в .pro
.