qt6-error: invalid use of incomplete type ‘class Ui::Widget‘

2023-11-05 15:01

本文主要是介绍qt6-error: invalid use of incomplete type ‘class Ui::Widget‘,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景

昨晚刚建立qt工程,点击运行,工作可以直接使用,但是早上点开工作,就出现type类型错误。有点奇怪。问题页面显示,问题主要就是ui::widget的类型错误。
在这里插入图片描述
这篇文章提醒我,昨晚因为在尝试修改一些参数时,将objectName的Widget修改为uart。这说明窗口的objectName直接映射到Widget.cpp的类定义中,并且这种修改是无法实时同步的。换言之,所有窗口控件的命名等修改,需要手动修改到文件端嘛?这种修改是否效率太低。
在这里插入图片描述
下图显示,运行的窗口界面是Widget,与objectName是一样的,所以猜想直接修改objectName,可以修改窗口的名字。但是右上角对象窗口显示,每添加一个控件,就会相应显示一个对象和类。如hello world字符的对象是lable,类是QLable。然而,修改这种对象的名字并不会改变程序窗口的hello world内容。换言之,修改objectName不会修改运行程序界面的显示内容。
在这里插入图片描述
打开widget.cpp文件,特意修改Ui::widget为Ui::wid,以同步ObjectName的命名。结果显示错误:Cannot initialize a member subobject of type 'Ui::Widget with an rvalue of type 'Ui::Wid

#include "widget.h"
#include "./ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Wid)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}

这个表达说明,Ui::Widget是工程建立后,实际存在type,objectName指代的内容是其 member subobject。objectName需要保持与这种type名的一致。

objectName与Ui:Widget同步

前面说到,修改objectName是无法同步Widget.cpp文件中的Ui::的这个描述。但是当然选择直接右键点击修改对象名称时,却实现了这种同步效果。说明修改objectName的效果是有限的,需要直接右键修改。
在这里插入图片描述
关于如何修改运行窗口的名字,属性页面中的windowTitle可以实现这种效果。
在这里插入图片描述

后记:这个文章提醒我,从错误中学习的可行中。每次出现这种微小的错误,都可以由此出发, 通过实践和逻辑分析,收获新的理解。这种把错误当成踏脚石的观念可以比较好的提升学习效率。

这篇关于qt6-error: invalid use of incomplete type ‘class Ui::Widget‘的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/350630

相关文章

mysql出现ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)的解决方法

《mysql出现ERROR2003(HY000):Can‘tconnecttoMySQLserveron‘localhost‘(10061)的解决方法》本文主要介绍了mysql出现... 目录前言:第一步:第二步:第三步:总结:前言:当你想通过命令窗口想打开mysql时候发现提http://www.cpp

springboot报错Invalid bound statement (not found)的解决

《springboot报错Invalidboundstatement(notfound)的解决》本文主要介绍了springboot报错Invalidboundstatement(not... 目录一. 问题描述二.解决问题三. 添加配置项 四.其他的解决方案4.1 Mapper 接口与 XML 文件不匹配

前端 CSS 动态设置样式::class、:style 等技巧(推荐)

《前端CSS动态设置样式::class、:style等技巧(推荐)》:本文主要介绍了Vue.js中动态绑定类名和内联样式的两种方法:对象语法和数组语法,通过对象语法,可以根据条件动态切换类名或样式;通过数组语法,可以同时绑定多个类名或样式,此外,还可以结合计算属性来生成复杂的类名或样式对象,详细内容请阅读本文,希望能对你有所帮助...

解决Spring运行时报错:Consider defining a bean of type ‘xxx.xxx.xxx.Xxx‘ in your configuration

《解决Spring运行时报错:Considerdefiningabeanoftype‘xxx.xxx.xxx.Xxx‘inyourconfiguration》该文章主要讲述了在使用S... 目录问题分析解决方案总结问题Description:Parameter 0 of constructor in x

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

解决systemctl reload nginx重启Nginx服务报错:Job for nginx.service invalid问题

《解决systemctlreloadnginx重启Nginx服务报错:Jobfornginx.serviceinvalid问题》文章描述了通过`systemctlstatusnginx.se... 目录systemctl reload nginx重启Nginx服务报错:Job for nginx.javas

Python中的可视化设计与UI界面实现

《Python中的可视化设计与UI界面实现》本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示... 目录从像素到界面:python带你玩转UI设计示例:使用Tkinter创建一个简单的窗口绘图魔法:用

VUE动态绑定class类的三种常用方式及适用场景详解

《VUE动态绑定class类的三种常用方式及适用场景详解》文章介绍了在实际开发中动态绑定class的三种常见情况及其解决方案,包括根据不同的返回值渲染不同的class样式、给模块添加基础样式以及根据设... 目录前言1.动态选择class样式(对象添加:情景一)2.动态添加一个class样式(字符串添加:情

element-ui下拉输入框+resetFields无法回显的问题解决

《element-ui下拉输入框+resetFields无法回显的问题解决》本文主要介绍了在使用ElementUI的下拉输入框时,点击重置按钮后输入框无法回显数据的问题,具有一定的参考价值,感兴趣的... 目录描述原因问题重现解决方案方法一方法二总结描述第一次进入页面,不做任何操作,点击重置按钮,再进行下

提示:Decompiled.class file,bytecode version如何解决

《提示:Decompiled.classfile,bytecodeversion如何解决》在处理Decompiled.classfile和bytecodeversion问题时,通过修改Maven配... 目录问题原因总结问题1、提示:Decompiled .class file,China编程 bytecode