诣澜 2015-08-16 09:59 采纳率: 20%
浏览 2020

QT遇到了奇怪的错误,网上的方法都不行

#include "mainwindow.h"
#include <QApplication>
#include <QtGui>
#include<QtWidgets>


class notepad:public QWidget
{
Q_OBJECT
public:
notepad(QWidget * parent = 0, Qt::WindowFlags f = 0);//g
QTextEdit *qte;
QPushButton *qpb;
QVBoxLayout *qvbl;
public slots:
void nquit();
};

notepad::notepad(QWidget * parent, Qt::WindowFlags f):QWidget(parent, f){
qte =new QTextEdit;
qpb=new QPushButton("退出");
connect(qpb,SIGNAL(clicked()),this,SLOT(nquit()));
qvbl->addWidget(qte);
qvbl->addWidget(qpb);
setLayout(qvbl);
}

void notepad::nquit(){
qApp->quit;
}

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
 /*MainWindow w;
w.show();*/
notepad b;
return a.exec();
}


  • 写回答

1条回答 默认 最新

  • lpfly 2015-08-16 20:22
    关注

    QWidget的构造函数是这样的:

     QWidget(QWidget * parent = 0, Qt::WindowFlags f = 0)
    

    和你自己顶一个notepad()构造函数是冲突的。因为如果你用notepad b创建一个notepad的时候,编译器不知道你具体要调用哪个构造函数,因为QWidget的构造函数里的两个参数都有默认值,如果你不给参数的话,notepad()和QWidget()都是可以得。

    你可以把notepad构造函数改成:

    class {
    ...
    notepad(QWidget * parent = 0, Qt::WindowFlags f = 0);
    ...
    }
    ...
    
    notepad::notepad(QWidget * parent, Qt::WindowFlags f)
        : QWidget(parent, f) {
    ...
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法