QT C++ 错误:对“appprinter 的 vtable”的未定义引用

2023-11-30

问题: 我有一个程序,其中包括打印机类“apppprinter”, 但是当尝试编译时我收到错误:

appprinter.cpp:(.text+0x105): undefined reference to `vtable for appprinter'
appprinter.cpp:(.text+0x10d): undefined reference to `vtable for appprinter'
appprinter.o: In function `appprinter::printIt()':
make: Leaving directory `/home/michael/projectOOI/HerkansingProjectOOI-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK__Release'
appprinter.cpp:(.text+0x17f): undefined reference to `appprinter::staticMetaObject'
appprinter.cpp:(.text+0x1e0): undefined reference to `appprinter::staticMetaObject'
appprinter.cpp:(.text+0x23d): undefined reference to `appprinter::staticMetaObject'
appprinter.cpp:(.text+0x3ab): undefined reference to `appprinter::staticMetaObject'
collect2: ld returned 1 exit status

头文件:

#ifndef APPPRINTER_H
#define APPPRINTER_H
#include<QObject>
#include<QWidget>
#include <QMap>
#include <QComboBox>
#include <QCalendarWidget>
#include <QRadioButton>
#include <QString>
#include <QtGui>
#include "appointment.h"

class appprinter : public QWidget
{
    Q_OBJECT
public:
    appprinter(QWidget * parent = 0, int i = 0, int option = 0);
    ~appprinter(){}
    void setList(QList<appointment> param) {goTo = param; printIt();}
    void printIt();
public slots:
    void goNext() {showIter++; this->close();appprinter * help = new appprinter(this,showIter);help->setList(goTo); help->show();}
    void goPrev() {showIter--; this->close();appprinter * help = new appprinter(this,showIter);help->setList(goTo); help->show();}
private:
    int showIter;
    QList<appointment> goTo;
    bool isUnder;
    int opt;
};

#endif // appprinter_H

.cpp 文件:

#include "appprinter.h"

appprinter::appprinter(QWidget * parent, int i, int option)
        : QWidget(parent)
{
    showIter = i;
    if (option == 0);//needs further building

}

void appprinter::printIt()
{
    QList<appointment> list = goTo;
    int i = showIter;
    QPushButton * showNext = new QPushButton(tr("Next"));
    connect(showNext,SIGNAL(clicked()),this,SLOT(goNext()));
    QPushButton * showPrev = new QPushButton(tr("Previous"));
    connect(showPrev,SIGNAL(clicked()),this,SLOT(goPrev()));
    QPushButton * closer = new QPushButton(tr("Close"));
    connect(closer,SIGNAL(clicked()),this,SLOT(close()));

    QGridLayout * lay = new QGridLayout;
    int counter = 0;
    QLabel * pTitle = new QLabel;
    QTextEdit * pDescription = new QTextEdit;
    QLabel * pDeadline = new QLabel;
    QLabel * pDeadlineTime = new QLabel;
    QLabel * pPriority = new QLabel;
    QLabel * pStatus = new QLabel;
    QLabel * emptyList = new QLabel(tr("No search results!"));

    if (list.count() != 0)
    {
        pTitle->setText(list[i].ShowTitle());
        pDescription->setText(list[i].ShowDescription());
        pDeadline->setText(list[i].ShowDate().toString());
        pDeadlineTime->setText(list[i].ShowStart().toString());
        if (i+1 >= list.count())
            showNext->hide();
        else
            showNext->show();
        if (i <= 0)
            showPrev->hide();
        else
            showPrev->show();
        lay->addWidget(pTitle,counter++,0);
        lay->addWidget(pDescription,counter++,0);
        lay->addWidget(pDeadline,counter++,0);
        lay->addWidget(pDeadlineTime,counter++,0);
        lay->addWidget(pPriority,counter++,0);
        lay->addWidget(pStatus,counter++,0);
        lay->addWidget(showPrev,counter,0,Qt::AlignLeft);
        lay->addWidget(showNext,counter,0,Qt::AlignRight);
        lay->addWidget(closer,++counter,0,Qt::AlignCenter);
        this->setFixedHeight(320);
    }
    else
    {
        lay->addWidget(emptyList,0,0);
        lay->addWidget(closer,1,0,Qt::AlignCenter);
        this->setFixedHeight(240);
    }
    setLayout(lay);

    if (list.count() != 0)
        setWindowTitle(list[i].ShowTitle());
}

有谁知道解决办法吗?


每当您遇到这种情况时,请务必执行以下操作clean, qmake并重建。除非您有其他问题(例如丢失),否则它会修复Q_OBJECT或未实现的纯虚拟。

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

QT C++ 错误:对“appprinter 的 vtable”的未定义引用 的相关文章

  • 如何将 std::string& 转换为 C# 引用字符串

    我正在尝试将 C 函数转换为std string参考C 我的 API 如下所示 void GetStringDemo std string str 理想情况下 我希望在 C 中看到类似的东西 void GetStringDemoWrap r
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • STL 迭代器:前缀增量更快? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中的预增量比后增量快 正确吗 如果是 为什么呢 https stackoverflow com questions 2020184 preincrement faster than postinc
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • Qt 支持 Windows 蓝牙 API 吗?

    谁能告诉我 Qt 是否支持 Windows 蓝牙 API 如果是这样 您能否分享一些有关如何使用它的信息 自上次答复以来 这个问题的答案发生了一些变化 Qt 5 2 版为 Linux BlueZ 和 BlackBerry 设备实现了蓝牙 A
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat

随机推荐

  • 多次重新分配比一次巨大的内存分配更昂贵吗?

    我使用动态数组来表示最小堆 有一个循环删除最小值 并将随机元素添加到最小堆 直到出现某种条件 虽然我不知道堆的长度在运行时会如何变化 有很多随机性 但我知道上限 即 1000 万 我有两个选择 1 使用malloc声明一个小数组 然后当堆中
  • 从其超级视图中删除视图

    我在 self view 中添加了一些按钮 当用户单击一个按钮时 我将加载另一个视图 子视图 我加载子视图的代码如下所示 subView UIView alloc initWithFrame CGRectMake 0 0 self scro
  • .docx 和 .doc 文件的结构是什么?

    我了解到 docx 文件基本上是二进制文件 但我不知道下面的结构 docx 文件的基本结构是什么 比如 标题有多长 实际文档内容从什么时候开始 最后有签名吗 基本上 docx 文件的结构是什么 Docx 基本上是一个 zip 存档 其中包含
  • Prolog如何将文件保存在现有文件中

    添加新数据后如何保存现有文件 add a link X Y tell alink txt write X write write Y write put 10 told write data written nl 此代码仅重写文本文件 Us
  • 对象内容更改时组合框刷新值和列表视图

    当用于在组合中显示文本的对象的内容发生变化时 我想更新我的组合框 这是一个示例 package com javafx example combobox import javafx application Application import
  • 使用 Prism 和自定义标题栏时如何在 MasterDetail 页面中显示菜单

    我对 Xamarin 完全陌生 我正在开发一个使用 Prism 框架进行导航的项目 我的第一个 xamarin 项目 要求需要一个自定义标题栏 我已经按照本教程中的详细说明实现了它 https wolfprogrammer com 2016
  • SQL Server 中的临时表和表变量有什么区别?

    在SQL Server 2005中 我们可以通过两种不同的方式创建类似的表 我们可以使用表变量 declare tmp table Col1 int Col2 int 或者我们可以使用临时表 create table tmp Col1 in
  • 如何解决 java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

    我有一些使用 JAXB API 类的代码 这些类已作为 Java 6 7 8 中 JDK 的一部分提供 当我使用 Java 9 运行相同的代码时 在运行时我收到错误 指示找不到 JAXB 类 从 Java 6 开始 JAXB 类就作为 JD
  • 如何像sqlite一样将整数值保存到NSuserDefault?

    我想在 NSUserDefault 中保存和检索值 我正在成功保存和检索值 但是 当我进入 cak 主页并再次进入我的班级时 该值不会被存储 并且所有过程都会再次完成 它不记得旧的价值 我正在做这个 void ViewDidLoad A 0
  • sencha touch2.0中如何在屏幕之间传递数据?

    我正在开发 sencha touch2 0 应用程序 我想将数据从一个屏幕发送到另一个屏幕 我知道这个问题已经被问过here但我发现它没有帮助 所以我在这里再次询问 我的应用程序中有一个复选框列表视图 我想要的是 当我单击一个或多个复选框并
  • 默认 lambda 作为函数的模板化参数

    考虑下面的代码 template
  • OpenMP 5.1 规范是否允许使用非矩形循环的折叠子句?

    考虑以下 OpenMP 代码 pragma omp target teams distribute parallel for collapse 4 map tofrom a private i j k l for i 0 i lt SIZE
  • 如何使用 CoreAnimation 制作像时钟倒计时一样的圆圈动画

    我希望有一个时间倒计时指示器 就像一个圆圈一样 从一段拱形开始到一个完整的圆圈 我尝试了几种方法 最后都是把拱门直接转成一整圈 而不是顺时针转 演示图片如下所示 任何想法 不胜感激 SetNeedsDisplay 当你改变其中一个角度时 你
  • XDocument 或 XmlDocument

    我现在正在学习XmlDocument但我刚刚遇到XDocument当我尝试搜索它们的区别或优点时 我找不到有用的东西 您能告诉我为什么您会使用其中一个而不是另一个吗 如果您使用 NET 版本 3 0 或更低版本 则have to use X
  • 带符号的过度打孔值的解析器?

    我正在处理一些旧数据导入 并遇到了来自外部源的大量数据 这些数据用签名过冲 我见过很多 但这是在我的时代之前 在我开始创建一个函数来解析这些陌生人之前 我想检查一下是否有处理这些陌生人的标准方法 我想我的问题是 Net 框架是否提供了用于转
  • JSF 2.0 获取当前会话中xhtml页面的内容

    我正在尝试使用 Flying Saucer 将 JSF 页面转换为 PDF ManagedBean SessionScoped public class ReportController public void createPDF Face
  • node.js Gmail API:获取内联/嵌入图像

    当抓取电子邮件时 我运行gmail users messages get 然后运行以下两个函数来处理payload function getBody message var encodedBody try if typeof message
  • 是否有 (return a) >>= b 的标准 Haskell 函数?

    我正在寻找一种方法来删除returns 来自以下函数 naming path getModificationTime path gt gt return formatTime defaultTimeLocale Y m d gt gt re
  • 登录后重定向页面的好处

    我看到很多网站 比如使用 vbulletin 的网站 都有 谢谢你 您已成功登录 点击此处继续 page 这样做有什么好处 优点吗 这和不重定向有什么区别 流量with重定向站点如下 此处的开启页面指的是 登录 区域的首页 login pa
  • QT C++ 错误:对“appprinter 的 vtable”的未定义引用

    问题 我有一个程序 其中包括打印机类 apppprinter 但是当尝试编译时我收到错误 appprinter cpp text 0x105 undefined reference to vtable for appprinter appp