QVision Widget编译时出错

Rek*_*Rek 38 qt compiler-errors widget qwidget

只有一个错误,直到我将其用于我的研究!

Warning: Z-order assignment: " is not a valid widget.
FILE: qvvideoreaderblockwidget.ui
Run Code Online (Sandbox Code Playgroud)

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

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

小智 76

在Qt Creator之外编辑ui文件.删除带有"zorder"标记的行.然后在Qt Creator中打开并再次编译.它完全适合我,警告不再出现了.

  • 也为我工作过.虽然事业对我来说仍然是一个谜. (4认同)
  • @MartinDrozdik z-order是应该向屏幕呈现不同ui元素的深度.如果两个元素具有相同的z次序,则图形卡试图在完全相同的点处绘制两个元素,从而在每次渲染时可以将像素的颜色值改变两次,这将导致闪烁.我没有看到Qt发生这种情况,可能是因为有些方法可以确保不会发生.我不认为这是一个大问题,但Qt可能只是确定.编辑文件可能会迫使Qt重新索引z顺序,从而解决问题 (2认同)

小智 14

好吧,我有这个,它也让我烦恼.我不知道发生了什么事,但这并不严重.我想打破并重新制作所有布局可能会解决它.其他框架倾向于许多警告,但我是QT的新手,而不是一个.我进入了另一个编辑器,删除了一条说(我记得最好)的一行:

<z-order>verticalSpacer</z-order>
Run Code Online (Sandbox Code Playgroud)

这是许多其他行也是z阶标签.我删除了带有此标记的行,并重建了所有内容.问题消失了.有趣的是,当我接下来查看它时,所有的z-order标签都从我的文件中消失了.它一定是一个bug,但显然是一个小问题; 除了那些讨厌看到Qt的宁静之美的宠坏了.


小智 2

ui 文件 qvvideoreaderblockwidget.ui 是否包含“升级的小部件”?如果是这样,请使用(Qt4-)设计器的“升级小部件”对话框来确保升级小部件类的标头声明为“全局包含”。

如果自定义小部件类名为“MyWidget”,头文件名为“mywidget.h”,并且成员小部件应命名为“myWidget”,则 uic 将生成 ui 类的代码,如下所示:

#include <mywidget.h>

class qvvideoreaderblockwidget
{
public:
    MyWidget* myWidget;

    // ...
};
Run Code Online (Sandbox Code Playgroud)