Ошибка виджета QVision при компиляции

Только одна ошибка, прежде чем я смогу использовать это для своего исследования!

Warning: Z-order assignment: " is not a valid widget.
FILE: qvvideoreaderblockwidget.ui

Там нет номера строки, который пришел с ним. Я пытался найти, но не смог увидеть часть с открытым концом.

Что я должен сделать, чтобы правильно скомпилировать эту библиотеку?


person Rek    schedule 26.07.2011    source источник
comment
Что ж, эту ошибку нужно исправить. Не знаю, как вы ожидаете, что вам помогут, если вы не опубликуете хотя бы часть этого файла.   -  person Mat    schedule 26.07.2011
comment
Я не могу найти ошибочную строку самостоятельно ›_‹ Я попытаюсь завтра снова получить библиотеку.   -  person Rek    schedule 26.07.2011
comment
Угу такая же проблема. Ничего, чтобы сообщить нам, что не так. Как вы это исправили?   -  person wrongusername    schedule 18.08.2011
comment
Не исправил это; Я решил программировать в Linux (вместо того, чтобы делать это в Windows, где я получаю сообщение об ошибке), извините, что не обновил T_T   -  person Rek    schedule 07.09.2011
comment
Кстати, вы неправильно скопировали сообщение, это ", но '' (две пустые одинарные кавычки, обозначающие пустую строку), а тег для уничтожения - это пустой тег <zorder></zorder> (как объяснено в следующих ответах).   -  person Matteo Italia    schedule 06.10.2013


Ответы (6)


Отредактируйте файл ui вне Qt Creator. Удалите строки с тегами zorder. Затем откройте в Qt Creator и снова скомпилируйте. У меня тогда работало отлично, предупреждение больше не появлялось.

person Vlad    schedule 15.04.2012
comment
Работал и для меня. Хотя причина для меня до сих пор остается загадкой. - person Martin Drozdik; 30.04.2012
comment
<zorder> строк больше, чем ошибок; не все из них должны быть удалены. Тем не менее странно, что он создал <zorder> строки для элементов, которые не являются виджетами (но прокладками в моем случае). - person Halfgaar; 03.02.2014
comment
@MartinDrozdik Z-порядок — это глубина, на которой различные элементы пользовательского интерфейса должны отображаться на экране. Если два элемента имеют одинаковый z-порядок, видеокарта пытается отрисовать оба элемента в одном и том же месте, и, таким образом, значение цвета пикселя может быть изменено два раза при каждом рендеринге, что приведет к мерцанию. Я не видел, чтобы это происходило с Qt, вероятно, потому, что есть способы, которыми вы можете гарантировать, что этого не произойдет. Я не думаю, что это большая проблема, однако Qt, вероятно, просто проверяет. Редактирование файла, вероятно, заставляет Qt переиндексировать z-порядок, тем самым решая проблему. - person Attaque; 28.03.2014
comment
Измените порядок табуляции, исправьте некоторые предупреждения для меня. - person Shihe Zhang; 18.10.2017

Хорошо, у меня было это, и это меня тоже раздражало. Я не знаю, чем это вызвано, но это не серьезно. Я полагаю, что слом и переделка всех макетов может это исправить. Другие фреймворки склонны к большому количеству предупреждений, но, хотя я новичок в Qt, еще ни одного. Я зашел в другой редактор и удалил строку, в которой говорилось (насколько я помню):

<z-order>verticalSpacer</z-order>

это было среди множества других строк, которые также были тегами z-порядка. Я удалил строчку с этим тегом и все пересобрал. Проблема ушла. Интересно, что все теги z-порядка исчезли из моего файла, когда я посмотрел на него в следующий раз. Должно быть, это ошибка, но явно незначительная; кроме тех, кто ненавидит портить безмятежную красоту Qt.

person Zathras    schedule 09.09.2011
comment
У меня просто по сути тоже самое. Я вручную отредактировал файл .ui и избавился от сообщения. Затем я сделал еще одно редактирование, и все мои строки <zorder>, кроме двух, исчезли. - person David Dunham; 01.02.2012
comment
моя проблема в том, что я работаю над проектом из svn, во-вторых, в моем xml нет тега z-order для удаления, пожалуйста, прочитайте мой вопрос ЗДЕСЬ .. Буду признателен за любой совет - person McLan; 14.03.2014
comment
Пожалуйста, исправьте опечатку выше; это ‹zorder›, а не ‹z-order›. - person Rob Winchester; 12.04.2017

Содержит ли пользовательский интерфейс qvvideoreaderblockwidget.ui «Продвигаемые виджеты»? Если это так, используйте диалоговое окно «Продвигаемые виджеты» дизайнера (Qt4-), чтобы убедиться, что заголовок продвигаемого класса виджетов объявлен как «глобальное включение».

Если пользовательский класс виджета называется «MyWidget», а заголовок — «mywidget.h», а виджет-член должен называться «myWidget», пользовательский интерфейс сгенерирует код класса пользовательского интерфейса следующим образом:

#include <mywidget.h>

class qvvideoreaderblockwidget
{
public:
    MyWidget* myWidget;

    // ...
};
person Mike    schedule 29.08.2011

Это случилось со мной, когда я удалил довольно большой кусок материала в дизайнере. Расследование показало, что дизайнеру не удалось удалить тег zorder, относящийся к удаленному мной виджету (который, кстати, содержал кучу других виджетов).

Удаление строки, как было предложено, устранило проблему. Если у вас есть множество тегов zorder, вам, вероятно, нужно быть осторожным, чтобы просто удалить тот, который относится к удаленному элементу.

person Alan Lenton    schedule 12.02.2014

У меня была та же проблема, и удаление файла .exe из выходной папки (отладки или выпуска) перед запуском/компилированием исходного кода решило проблему.

person totymedli    schedule 29.07.2012

Эта проблема возникает из-за (в настоящее время) неисправленной ошибки в механизме отмены/удаления Qt Creator. .

Решение, пока ошибка не будет исправлена, состоит в следующем:

  1. Закройте файл .ui в Qt Designer
  2. Откройте файл .ui во внешнем редакторе.
  3. Удалите <zorder> строки, которые относятся к проблемному элементу. Например:

    <zorder>groupBox_2</zorder>
  4. Сохраните файл
  5. Повторно откройте файл в Qt Designer.
  6. Перекомпилировать в Qt
person fyngyrz    schedule 06.05.2020