老赵的博客 2021-11-23 14:06 采纳率: 20%
浏览 33

继承自QPushButton的子类提示说虚函数未定义



```#include "mainwindow.h"
#include <QApplication>
#include<QtWidgets>
#include<iostream>
using namespace std;

class B:public QPushButton
{
    Q_OBJECT
public: B(QString s="",QWidget *p=0):QPushButton(s,p){}
    ~B(){}
public slots:
    void  f(){cout<<"F"<<endl;}
    void g(){ cout<<"G"<<endl;}
    void h(){ cout<<"H"<<endl;}
    void j(){ cout<<"J"<<endl;}
    void k(){ cout<<"K"<<endl;}
};

int main(int argc, char *argv[])
{
    QApplication a(argc,argv);

    //创建部件
    QDialog w; //默认按钮只在对话框中有效。读者可使用 QWidget 进行验证。
    B *pb1=new B("AAA",&w); B *pb2=new B("BBB",&w); B *pb3=new B("CCC",&w);
    B *pb4=new B("DDD",&w); B *pb5=new B("EEE",&w);
    QCheckBox *pb6=new QCheckBox("XXX",&w);
    pb2->setDefault(true); //设置 pb2 为默认按钮。
    pb3->setAutoDefault(0); //取消 pb3 的自动默认按钮属性
    pb4->setFlat(true); //设置 pb4 的 flat 属性为 true。
    // pb5->setAutoDefault(0); //错误 pb5 不是 QPushButton,不能设置自动默认按钮
    cout<<pb1->autoDefault()<<endl; //输出 1。对话框中的按钮默认具有自动默认按钮属性
    cout<<pb1->isDefault()<<endl; //输出 0。
    //布局各部件
    pb1->move(22,22); pb2->move(99,22); pb3->move(177,22);
    pb4->move(22,77); pb5->move(99,77);pb6->move(177,77);
    //验证默认按钮和自动默认按钮,需要使用信号和槽机制。
    QObject::connect(pb1,&QPushButton::clicked,pb1,&B::f);
    QObject::connect(pb2,&QPushButton::clicked,pb2,&B::g);
    QObject::connect(pb3,&QPushButton::clicked,pb3,&B::h);
    QObject::connect(pb4,&QPushButton::clicked,pb4,&B::j);
    QObject::connect(pb5,&QPushButton::clicked,pb5,&B::k);
    w.resize(300,200); w.show();
    return a.exec();
}



```

  • 写回答

3条回答 默认 最新

  • 老赵的博客 2021-11-23 14:07
    关注

    error: undefined reference to `vtable for B'

    评论

报告相同问题?

问题事件

  • 创建了问题 11月23日

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀