error: call of overloaded 'MyPushButton()' is ambiguous

爱生活爱编程 2021-07-27 20:45:27

不知道什么原因,也不知到构造函数出了什么问题,请大神看看
/////////////////////myphubutton.h///////////////////////////////

#ifndef MYPUSHBUTTON_H
#define MYPUSHBUTTON_H

#include <QPushButton>

class MyPushButton : public QPushButton
{
    Q_OBJECT
public:
    explicit MyPushButton(QWidget *parent = nullptr);

    MyPushButton();
    ~MyPushButton();

signals:


};

#endif // MYPUSHBUTTON_H

/////////////////////myphubutton.cpp///////////////////////////////

#include "mypushbutton.h"
#include <QDebug>
MyPushButton::MyPushButton(QWidget *parent) : QPushButton(parent)
{
    qDebug() << "我的按钮类构造调用";
}

//MyPushButton::MyPushButton() : QPushButton()
//{
//    qDebug() << "我的按钮类构造调用";
//}

MyPushButton::~MyPushButton()
{
    qDebug() << "我的按钮类析构" ;
}


////mywidget.cpp 主窗口 ////////////////////////////////////////


#include "mywidget.h"
#include<QPushButton>//按钮控件的头文件
#include<mypushbutton.h>


myWidget::myWidget(QWidget *parent)
    : QWidget(parent)   //触发列表,有父类使用父类没有默认0
{
    //创建一个自己的按钮对象
   MyPushButton * myBtn = new MyPushButton;     //这句出问题 无法构造
   myBtn->setText("我自己的按钮");
   myBtn->move(200,0);
   myBtn->setParent(this);

}

myWidget::~myWidget()
{
}

出错内容

J:\QT_PRJ\01_FirstProject\mywidget.cpp:53: error: call of overloaded 'MyPushButton()' is ambiguous
    MyPushButton * myBtn = new MyPushButton;


使用版本qt5.9.9
编译器MinGW5.5
                               ^

...全文
1658 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
.v.. 2023-08-04
  • 打赏
  • 举报
回复

explicit MyPushButton(QWidget *parent = nullptr);
MyPushButton();
主要原因是系统已经给你写了一个参数默认的构造函数了,当你创建对象不传参数时,就会有两个构造函数符合要求,系统不知道给你调用哪一个

笔下觅封侯 2023-08-04
  • 打赏
  • 举报
回复 2

//创建一个自己的按钮对象
MyPushButton1 *btn3=new MyPushButton1(this);
加一个this 参数就好了

Nevey-Chen 2021-08-20
  • 打赏
  • 举报
回复

请问怎么解决的

爱生活爱编程 2021-08-08
  • 打赏
  • 举报
回复

非常感谢

kenash0625 2021-07-30
  • 打赏
  • 举报
回复 7

你已经知道了吧? 注掉不带参数的构造函数的声明

  • 举报
回复
@kenash0625 试了 可行 为什么呢
FRANK_SJY 2023-09-11
  • 举报
回复
@菜鸡的升级之路 系统不知道该调用哪一个MyPushButton了

16,815

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧