gpt4 book ai didi

c++ - Qt QMake : No such slot,重复错误如何清空缓存

转载 作者:搜寻专家 更新时间:2023-10-31 01:53:26 26 4
gpt4 key购买 nike

基本上,我正在编写一个 Qt 应用程序。它曾经工作得很好,但是自从我重新配置了一些文件名(具体来说,很久以前,我有一个名为 mainwindow.h 和 .cpp 的文件。我分别将它们重命名为 net.h 和 .cpp,最近更改了回到 mainwindow.h 和 .cpp),它失败并出现几个错误(在运行时):

Object::connect: No such slot QWidget::slotName()
Object::disconnect: No such signal QWidget::iconSizeChanged(QSize)
Object::disconnect: No such signal QWidget::toolButtonStyleChanged(Qt::ToolButtonStyle)
Object::connect: No such signal QWidget::iconSizeChanged(QSize)
Object::connect: No such signal QWidget::toolButtonStyleChanged(Qt::ToolButtonStyle)

我在类(class)中注册的唯一插槽是第一个,slotName。我不确定为什么它被列为 QWidget 的成员而不是我的类(QWidget 的子类)。我知道我声明它是正确的,因为我在 moc_mainwindow.cpp 文件中找到了它。是的,我的类定义中有 Q_OBJECT。

还会出现另一个错误,运行时每秒一次:

QWidget::metric: Invalid metric command
QPainter::begin: Paint device returned engine == 0, type: 143256176

就像我说的,所有这些过去都运行得很好,这就是为什么我不会发布大量代码,除非有人问。我认为这更多是 QMake 的缓存问题。我试过删除所有 moc 文件、删除项目文件、清空项目文件并生成一个新的空 Makefile 等。有人有任何想法吗?

最佳答案

你不应该在没有版本控制的情况下开发代码,句号。利用您的版本控制系统来清理您的工作拷贝,或 checkout 到新位置并在那里重新编译。这样你就不会责备谁知道什么了。

在没有版本控制的情况下,手动将项目逐个文件复制到新位置,将其提交到您选择的新版本控制存储库(本地存储库!)并在那里编译。

请注意,Qt Creator 一直默认为影子构建——即不在您的源文件夹中的构建。删除影子构建是微不足道的:转到源文件夹上方的一个目录,并寻找一个名称很长的文件夹,从您的项目名称开始。删除它,您就可以保证没有任何类型的“缓存”。

另请注意,QMake 根本没有缓存。它重新读取其输入中给出的所有文件(.pro 及其包含)并从头开始重新创建所有 Makefile。您可以运行 qmake && make clean 进行清理,但这不会处理来自不同配置项目的文件。 las,这样的文件无论如何都不应该干扰。

关于c++ - Qt QMake : No such slot,重复错误如何清空缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11165953/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com