【问题标题】:QVision Widget Error upon compile编译时出现 QVision 小部件错误
【发布时间】:2011-10-13 11:28:12
【问题描述】:

在我将其用于我的研究之前,只有一个错误!

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

没有附带的行号。我试图找到,但没有看到一个开放式的部分。

我应该怎么做才能正确编译这个库?

【问题讨论】:

  • 嗯,这个错误需要修复。如果不发布至少部分文件,不确定您希望如何获得帮助。
  • 我自己找不到错误行>_
  • 这里有同样的问题。没有什么可以让我们知道出了什么问题。你是怎么解决这个问题的?
  • 还没有解决这个问题;我选择在 Linux 中进行编程(而不是在出现错误的 Windows 中进行)抱歉没有更新 T_T
  • 顺便说一句,你复制的消息不正确,它是",但是''(两个空单引号,表示一个空字符串),要杀死的标签是一个空的<zorder></zorder>标签(如随后的答案中所述)。

标签: qt compiler-errors widget qwidget


【解决方案1】:

由于 Qt Creator 的撤消/删除机制中的(目前)未修复的 bug 引起此问题。

在修复错误之前的解决方案是:

  1. 在 Qt Designer 中关闭 .ui 文件
  2. 在外部编辑器中打开 .ui 文件
  3. 删除适用于有问题的元素的<zorder> 行。例如:

    <zorder>groupBox_2</zorder>
     
  4. 保存文件
  5. 在 Qt Designer 中重新打开文件
  6. 在 Qt 中重新编译

【讨论】:

    【解决方案2】:

    当我在设计器中删除了相当大的一部分内容时,这发生在我身上。调查显示,设计师未能删除与我删除的小部件相关的 zorder 标签(其中顺便包含了一堆其他小部件)。

    按照建议删除该行可以解决问题。如果您确实有大量 zorder 标签,您可能需要小心删除与已删除项目相关的标签。

    【讨论】:

      【解决方案3】:

      我有同样的问题,在运行/编译源代码之前从输出文件夹(调试或发布)中删除 .exe 文件,解决了问题。

      【讨论】:

        【解决方案4】:

        在 Qt Creator 之外编辑 ui 文件。删除带有“zorder”标签的行。然后在 Qt Creator 中打开并再次编译。它完美地为我工作,警告不再出现。

        【讨论】:

        • 也为我工作。虽然原因对我来说仍然是个谜。
        • <zorder> 行数多于错误数;并非所有这些都应该被删除。不过仍然很奇怪,它为不是小部件的元素创建了<zorder> 行(在我的例子中是分隔符)。
        • @MartinDrozdik z 顺序是不同 ui 元素应呈现到屏幕的深度。如果两个元素具有相同的 z 顺序,则显卡试图在完全相同的位置绘制两个元素,因此每次渲染时像素的颜色值可能会更改两次,这将导致闪烁。我还没有看到 Qt 会发生这种情况,可能是因为您可以通过一些方法来确保不会发生这种情况。我不认为这是一个大问题,但是 Qt 可能只是确保。编辑文件可能会强制 Qt 重新索引 z 顺序,从而解决问题
        • 编辑标签顺序,为我修复一些警告。
        【解决方案5】:

        好的,我有这个,它也让我很烦。我不知道是什么原因造成的,但这并不严重。我想破坏和重新制作所有布局可能会解决它。其他框架往往会发出很多警告,但我是 Qt 的新手,还不是一个。我进入另一个编辑器,删除了一行(据我所知):

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

        这是许多其他行中的一个,这些行也是 z 顺序标签。我删除了带有此标签的行,并重新构建了所有内容。问题消失了。有趣的是,当我接下来查看文件时,所有的 z 顺序标签都从我的文件中消失了。它一定是一个错误,但显然影响不大;除了那些讨厌看到 Qt 的宁静之美被宠坏的人。

        【讨论】:

        • 我得到了基本相同的东西。我手动编辑了 .ui 文件并删除了该消息。然后我又进行了一次编辑,除了两行 &lt;zorder&gt; 之外,所有行都消失了。
        • 我的问题是我正在从 svn 开发一个项目,其次在我的 xml 中没有要删除的“z-order”标签,请阅读我的问题HERE .. 我会感谢任何建议
        • 请更正上面的错字;它是“”,而不是“”。
        【解决方案6】:

        ui 文件 qvvideoreaderblockwidget.ui 是否包含“Promoted widgets”?如果是这样,请使用 (Qt4-) 设计器的“Promoted widgets”对话框来确保将提升的 widget-class 的标头声明为“global include”。

        如果自定义widget类命名为“MyWidget”,header命名为“mywidget.h”,成员widget命名为“myWidget”,则uic将生成ui-class的代码如下:

        #include <mywidget.h>
        
        class qvvideoreaderblockwidget
        {
        public:
            MyWidget* myWidget;
        
            // ...
        };
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-11
          • 2018-06-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多