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

2023-11-03 12:20

本文主要是介绍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/338127

相关文章

解决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

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Oracle type (自定义类型的使用)

oracle - type   type定义: oracle中自定义数据类型 oracle中有基本的数据类型,如number,varchar2,date,numeric,float....但有时候我们需要特殊的格式, 如将name定义为(firstname,lastname)的形式,我们想把这个作为一个表的一列看待,这时候就要我们自己定义一个数据类型 格式 :create or repla

Caused by: org.hibernate.MappingException: Could not determine type for: org.cgh.ssh.pojo.GoodsType,

MappingException:这个主要是类映射上的异常,Could not determine type for: org.cgh.ssh.pojo.GoodsType,这句话表示GoodsType这个类没有被映射到