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

相关文章

VS配置好Qt环境之后但无法打开ui界面的问题解决

《VS配置好Qt环境之后但无法打开ui界面的问题解决》本文主要介绍了VS配置好Qt环境之后但无法打开ui界面的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目UKeLvb录找到Qt安装目录中designer.UKeLvBexe的路径找到vs中的解决方案资源

QT6中绘制UI的两种方法详解与示例代码

《QT6中绘制UI的两种方法详解与示例代码》Qt6提供了两种主要的UI绘制技术:​​QML(QtMeta-ObjectLanguage)​​和​​C++Widgets​​,这两种技术各有优势,适用于不... 目录一、QML 技术详解1.1 QML 简介1.2 QML 的核心概念1.3 QML 示例:简单按钮

在 PyQt 加载 UI 三种常见方法

《在PyQt加载UI三种常见方法》在PyQt中,加载UI文件通常指的是使用QtDesigner设计的.ui文件,并将其转换为Python代码,以便在PyQt应用程序中使用,这篇文章给大家介绍在... 目录方法一:使用 uic 模块动态加载 (不推荐用于大型项目)方法二:将 UI 文件编译为 python 模

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

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