多个定义错误:一个在我的文件中,一个在 moc 文件中。

2024-03-24

我有一个名为 FindAndReplaceBar 的类,其实现是这样的:

#include "FindAndReplaceBar.h"
#include <QLabel>
#include <QPushButton>
#include <QGridLayout>
#include <QTextDocument>
#include <QLineEdit>

FindAndReplaceBar::FindAndReplaceBar(QObject *parent) :
    QToolBar(NULL)
{
    lblFind         = new QLabel("Find: ",this);
    lblReplace      = new QLabel("Replace",this);

    ledtFind        = new QLineEdit(this);
    ledtReplace     = new QLineEdit(this);

    QPixmap next(":/res/resources/next.gif");
    QPixmap previous(":/res/resources/previous.gif");
    QPixmap close(":/res/resources/close_icon.gif");

    btnFindNext     = new QPushButton(QIcon(next),"",this);
    btnFindPrevious = new QPushButton(QIcon(previous),"",this);
    btnClose        = new QPushButton(QIcon(close),"",this);

    btnReplace      = new QPushButton("Replace",this);
    btnReplaceAll   = new QPushButton("Replace All",this);

    btnFindNext->setFlat(true);
    btnFindPrevious->setFlat(true);
    btnClose->setFlat(true);
    btnReplace->setFlat(true);
    btnReplaceAll->setFlat(true);

    lytFindAndReplaceBar        = new QGridLayout(this);

    lytFindAndReplaceBar->addWidget(lblFind,0,0,1,1);
    lytFindAndReplaceBar->addWidget(ledtFind,0,1,1,2);
    lytFindAndReplaceBar->addWidget(btnFindPrevious,0,3,1,1);
    lytFindAndReplaceBar->addWidget(btnFindNext,0,4,1,1);

    lytFindAndReplaceBar->addWidget(lblReplace,0,5,1,1);
    lytFindAndReplaceBar->addWidget(ledtReplace,0,6,1,2);
    lytFindAndReplaceBar->addWidget(btnReplace,0,8,1,1);
    lytFindAndReplaceBar->addWidget(btnReplaceAll,0,9,1,1);

    this->setLayout(lytFindAndReplaceBar);

    connect(btnFindNext,SIGNAL(clicked()),this,SIGNAL(findNext()));
    connect(btnFindPrevious,SIGNAL(pressed()),this,SIGNAL(findPrevious()));
    connect(btnClose,SIGNAL(pressed()),this,SLOT(close()));
    connect(btnReplace,SIGNAL(pressed()),this,SIGNAL(replace()));
    connect(btnReplaceAll,SIGNAL(pressed()),this,SIGNAL(replaceAll()));

    this->setStyleSheet("QToolBar{background: qlineargradient(x1:0,x2:0,y1:0,y2:1,stop:0 #fffaf0,stop:0.3 #fdf5e6)} QLineEdit{border-radius:4px;padding:2px;}");
}

void FindAndReplaceBar::findNext()
{
    emit find(0);
}

void FindAndReplaceBar::findPrevious()
{
    emit find(QTextDocument::FindBackward);
}

void FindAndReplaceBar::replace()
{
    emit replace(false);
}

void FindAndReplaceBar::replaceAll()
{
    emit replace(true);
}

QString FindAndReplaceBar::searchTerm()
{
    return this->ledtFind->text();
}

QString FindAndReplaceBar::replaceTerm()
{
    return this->ledtReplace->text();
}

void FindAndReplaceBar::setSearchFieldText(const QString & searchFieldText)
{
    this->ledtFind->setText(searchFieldText);
}

void FindAndReplaceBar::setReplaceFieldText(const QString & replaceFieldText)
{
    this->ledtReplace->setText(replaceFieldText);
}

当我运行该程序时,我遇到了函数的多个定义的问题:

findNext(), findPrevious(), replace(), replaceAll().

另一个定义是在 moc_FindAndReplaceBar.cpp 文件中进行的。 我不确定问题是什么,所以我不知道如何解决它!我真的很感激任何帮助,谢谢!


根据您的连接调用(信号到信号)判断,我假设如果我们查看您的头文件,您将声明findNext(), findPrevious(), replace(), replaceAll() as signals, but 你不能执行信号- 它们只需要在标头中声明即可。

从 Qt 文档开始signals http://doc.qt.io/archives/qt-4.8/signalsandslots.html#signals

信号由 moc 自动生成,不得 在.cpp 文件中实现。它们永远不能有返回类型(即 使用无效)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多个定义错误:一个在我的文件中,一个在 moc 文件中。 的相关文章

  • Qt 托盘图标拖放

    有谁知道是否可以使用 Qt 对托盘图标进行拖放操作 我一直在做一些研究 这是我得出的结论 QSystemTrayIcon 无法显式处理拖 放事件 不过 有一种基于 Spifftastic 托盘图标定位方法的解决方法 您创建一个独特的彩色图标
  • 在 QLabel 中隐藏或裁剪重叠文本?

    我目前正在构建一个 UI 其中有 3 个以水平布局排列的标签 textLabel valueLabel unitLabel The valueLabel and unitLabel右对齐 unitLabel有固定的宽度 valueLabel
  • 如何使用 QT 设置 PATH 变量?

    如何使用 QT 4 8 获取和设置 PATH 变量 我知道我可以使用 STL 中的 getenv 获取 PATH 变量值 但不知道如何使用 STL 或任何基于 Qt 的方法设置它 如果 QT 有它的功能 我想了解并使用它 而不是去使用 Wi
  • 如何使用 ui 文件制作一个简单的小部件?

    我在 qt 中有一个带有退出按钮的简单窗口 工作代码如下所示 include
  • Qt 且没有 moc_*.cpp 文件

    我正在开发一个简单的 Qt 4 应用程序并制作自己的对话框 我子类化了QDialog 插入Q OBJECT类声明块中的宏 并且 我明白了 链接器错误 未定义对 MyDialog vtable 的引用 并且没有 moc MyDialog cp
  • QNetworkAccessManager和HTTP持久连接

    HTTP 1 1 默认支持持久连接 因此我想使用发出第一个 HTTP 请求时设置的相同连接来发送第二个 http 请求 如何通过Qt来实现这一点 如果我只是在第一个请求完成后发出第二个请求 如下所示 manager gt get QNetw
  • Qt圆角矩形,为什么角不一样?

    我尝试绘制一个圆角矩形drawRoundedRect方法直接在QPixmap 这里不涉及渲染引擎 除了纯 Qt 引擎 我仔细检查了矩形的大小与像素图的大小 Pixmap QSize 50 73 Rectangle QRect 0 0 48x
  • Qt 4.6 将对象和子对象添加到 QWebView 窗口对象(C++ 和 Javascript)

    我正在使用 Qt 的 QWebView 并且发现添加到 webkit 窗口对象有很多很好的用途 我想做的一件事是嵌套对象 例如 在 JavaScript 中我可以 var api new Object api os new Object a
  • Qt QFileDialog - 仅具有静态函数的本机对话框?

    我试图简单地保存一个文件 但是 我需要输入一个不带后缀的文件名来自动获取默认后缀 setDefaultSuffix 会这样做 我不想为此完全失去本机保存对话框 exec 没有从 QDialog 重载 因此它完全绕过本机钩子 忽略 DontU
  • 使用 sqlite3 驱动程序在 QSqlQuery 中使用多个 sql 语句

    我有一个包含多个 SQL 语句的文件 我想用它们来初始化新的 sqlite3 数据库文件 显然 sqlite3 仅通过以下方式处理一个查询中的多个语句 sqlite3 exec 函数 以及not通过prepare step finalize
  • 为什么我无法使用 Qt 中的 QXmlStreamReader 解析 XML 文件?

    我试图弄清楚 QXmlStreamReader 如何适用于我正在编写的 C 应用程序 我想要解析的 XML 文件是一个大字典 具有复杂的结构和大量的 Unicode 字符 因此我决定使用更简单的文档尝试一个小型测试用例 不幸的是 我碰壁了
  • 如何使用 QWebElement 设置 input(type="file") 的值?

    我正在尝试将照片上传到vk com https vk com using QtWebKit https qt project org doc qt 4 8 qtwebkit html模块 我面临的问题是无法正确填写input type fi
  • 如何在点击 Qtablewidget 单元格时获取放置在该单元格中的小部件的行号?

    我正在尝试的是当用户选择项目时获取 QcomboBox 的行号 虽然使用它很容易获得单元格的列和行 cellClicked int int 信号 但仅当单元格上没有小部件时才有效 那么如果单元格中放置了小部件 如何获取行号 Note 所有组
  • Linux 的 gcc __attribute__((selectany)) 替代方案?

    我想知道是否有替代方案 attribute selectany 在Linux中 我想定义这样的东西 char a qwe zxc 并将其包含在许多链接在一起的 c 文件中 因此链接器将看到 a 的多个定义 因此不会链接 我读过这个属性 se
  • 安装多个版本的 Qt 库

    我在windows中安装了QtSDK 它的Qt库版本是4 7 0 现在我想为 mingw 和 VS2008 安装 Qt 库版本 4 8 2 我怎样才能做到这一点 如何向QtCreator引入多个版本 注意 我已经从以下位置下载了库http
  • 适用于 KDE 和 Gnome 的 Gui [重复]

    这个问题在这里已经有答案了 我想为一个现在是 CLI 的应用程序编写一个 gui 它需要在 KDE 和 Gnome DE 中 看起来不错 充分利用用户的外观设置 如果我选择 Qt 或 GTK 我能够做到这一点吗 它们与两个 DE 集成良好吗
  • QMessageBox::about 可以根据标题长度调整大小吗?

    我想创建一个简单的 关于 对话框 但注意到QMessageBox about不会根据标题的长度调整其大小 由于字体较大 标题通常会更长 至少在我的桌面环境中 仅根据内容调整其大小 有没有办法确保对话框足够大以显示所有标题 我当然可以向 ab
  • Qt 人工鼠标点击无法正常工作

    小玩具应用程序可以在这里找到 http gist github com 517445 http gist github com 517445 我正在尝试将人工鼠标事件发送到小部件 我使用QApplication sendEvent为此 接下
  • 第一次信号发射后自动断开

    我正在从文件加载网页 然后替换其中的一些 html self template web page QtWebKit QWebPage self template web page mainFrame load QtCore QUrl tem
  • 如何在针对 Windows XP 的情况下使用 VS2012 构建 Qt 4/5?

    我正在尝试使用 Visual Studio 2012 构建 Qt 4 8 5 Qt 5 2 1 针对 Windows XP SDK v7 1a 使用 VS2102 编译时 源代码与 SDK v7 1a 存在各种不兼容性 因此无法开箱即用 这

随机推荐

  • 在 Windows 8 Metro 风格应用程序中,如何在应用程序未运行时更新动态磁贴?

    在 Windows 8 Metro 风格应用程序中 如何在应用程序未运行时更新动态磁贴 当操作系统开始启动时 动态磁贴开始运行 http blogs msdn com b windowsappdev archive 2012 04 16 c
  • Selenium Python 最小化浏览器窗口

    我知道如何从驱动程序对象调用最大化窗口的方法 driver maximize window 但是当我需要最小化浏览器窗口 隐藏它 时应该使用什么方法呢 实际上 驱动程序对象没有最大化窗口属性 我的目标是在浏览器窗口中默默地工作 我不想在我的
  • 如何从 docker 镜像中删除图层?

    我通过增量提交构建了一个 docker 映像 这导致在我的 docker 镜像中创建了很多层 随后镜像的大小变得非常大 有没有办法去除图层并从而减小图像的大小 任何帮助 将不胜感激 您可以尝试导出图像 然后再次导入 通过这种方式 所有图层都
  • TortoiseMerge 可以用作 Windows Git Bash 的 difftool 吗?

    我刚刚开始使用 Git 我想使用 TortoiseMerge 作为 difftool 和 mergetool In my HOME gitconfig我有以下部分 我已经删除了这个问题的用户和颜色部分 merge tool tortoise
  • 如何在android中以编程方式将视频发送到电子邮件

    我想从我的 Android 应用程序将 30 秒的视频发送到电子邮件 我已发送带有图像附件的电子邮件 但它不适用于视频 请帮助我做到这一点 提前致谢 send setOnClickListener new OnClickListener O
  • 针对依赖扩展对象的任务的 Gradle 插件最佳实践

    我希望获得有关定义依赖于外部状态的插件任务的最佳实践的反馈 即在引用插件的 build gradle 中定义 我使用扩展对象和闭包来推迟访问这些设置 直到它们需要且可用为止 我也对任务之间共享状态感兴趣 例如将一个任务的输出配置为另一任务的
  • 标签中提取内容 C# RegEx

    我有一个代码 string tag div string pattern string Format lt 0 gt
  • 2 个具有相同名称的 iPhone 应用程序。这怎么可能?

    As per iTunes Connect 开发人员指南 https itunesconnect apple com docs iTunesConnect DeveloperGuide pdf 1 应用程序名称应清晰 2 应用程序名称不应通
  • 根据属性值更改 VisualState

    如何根据 WP7 上的属性值更改 VisualState 我尝试使用 MVVM 模式 当我的模型加载时 我希望我的视图进入特定的 VisualState 在 Silverlight 中 我们有属性更改的触发器 但在 WP7 中没有 PS 我
  • 为什么 getline() 函数不起作用,除非我在函数 chamodifier 中调用它两次[重复]

    这个问题在这里已经有答案了 怎么了如果我在字符修饰符函数中仅使用一次 get line 函数 编译器将忽略它 除非我调用该函数两次 为什么我不能只使用一次 我尝试使用其他方法 它有效 但我想了解这个 我现在只是随机编写一些内容 这样添加更多
  • Laravel 5.5 Eloquent WhenLoaded 关系

    On the Laravel 5 5 文档 https laravel com docs 5 5 eloquent resources under 条件关系 它说 whenLoaded 方法可用于有条件地加载关系 我在我的代码中尝试过 pu
  • UIView 与容器视图

    这就是我想要解决的问题 In each viewController我正在尝试插入广告和实际的控制元素 我在 raywenderlinch com 上完成了几个教程 以了解人们如何专业地将广告放入他们的应用程序中 他们使用 UIViews
  • Delphi/GDI+:设备上下文何时创建/销毁?

    通常在 Delphi 中使用 GDI 你可以使用绘画盒 并在期间进行绘画OnPaint event procedure TForm1 PaintBox1Paint Sender TObject var g TGPGraphics begin
  • 通过 TCP 的 C# 字节流

    我是一名初级工程师 希望就如何解决这个问题向这里所有有经验的人寻求一些建议 我被分配了一个项目来创建一个通过 TCP 进行字节流传输的服务器 客户端应用程序 我们公司处理带有 GPS 和调度软件的 2 路无线电 我们想用它制作一个服务器 客
  • Android - 嵌套片段参与填充选项菜单

    我正在实现新的嵌套片段功能 但遇到了问题 我的观点基本上是这样的 主要活动 A 其中包括一个片段 B 这个片段 B 包括一个寻呼机适配器 它有 3 个页面 每个页面都是一个片段 C 还 以前对于新的 getchildfragmentmang
  • 正则表达式以一致的顺序提取字符串的不同部分

    我有一个字符串列表 my strings 2002 03 04 with Matt Important 2016 01 23 with Mary with Tom on 2015 06 30 我想提取 日期 始终采用 yyyy mm dd
  • 如何在 React 中使用增量运算符

    为什么当我做的时候this setState count this state count 2 它正在工作 但是当我这样做时 this setState count this state count 它不起作用 为什么 以及如何解决它 完整
  • python numpy MKL 错误

    我正在运行 ActiveState Python 3 2 并收到此神秘错误 D code gt python ActivePython 3 2 1 2 ActiveState Software Inc based on Python 3 2
  • 仅使用 GCM 开发 Android 聊天应用程序(放弃 XMPP)是否合适?

    很多应用程序 例如WhatsApp依靠GCM当设备空闲或应用程序在后台运行时向设备发送通知 这GCM消息只是告诉应用程序从服务器同步 然后XMPP用于进行实际的聊天 传递有效负载 但这是一个好的决定吗 GCM发送消息 因此 就我而言 当一个
  • 多个定义错误:一个在我的文件中,一个在 moc 文件中。

    我有一个名为 FindAndReplaceBar 的类 其实现是这样的 include FindAndReplaceBar h include