找回密码
 立即注册
收起左侧

QT没有合适的默认构造函数可用

1
回复
13695
查看
[复制链接]
累计签到:10 天
连续签到:1 天
来源: 2016-7-11 18:49:03 显示全部楼层 |阅读模式
1Qter豆
mytimer.h
#ifndef MYTIMER_H
#define MYTIMER_H

#include <QtWidgets/QWidget>
#include "ui_mytimer.h"

namespace Ui{class mytimer;}
class mytimer : public QWidget
{
        Q_OBJECT

public:
        mytimer(QWidget *parent = 0);
        ~mytimer();
protected:
        void timerEvent(QTimerEvent *);

private:
        Ui::mytimerClass *ui;
        int id1,id2,id3;

private slots:
        void timerUpdate();

};

#endif // MYTIMER_H



mytimer.cpp
#include "mytimer.h"
#include "ui_mytimer.h"

#include <QTimer>
#include <QDatetime>

mytimer::mytimer(QWidget *parent)
        : QWidget(parent),
        ui(new Ui::mytimer)
{   
        ui->setupUi(this);

        id1=startTimer(1000);
        id2=startTimer(2000);
        id3=startTimer(10000);
        QTimer *timer = new QTimer(this);

        connect(timer,SIGNAL(timeout()),this,SLOT(timerUpdate()));

        timer->start(1000);

        qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
}

mytimer::~mytimer()
{
        delete ui;
}

void mytimer::timerEvent(QTimerEvent *event)
{
        if(event->timerId() == id1) {
                ui->label->setText(tr("%1").arg(qrand()%10));
        }
        else if (event->timerId() == id2){
                ui->label_2->setText(tr("hello world!"));
        }
        else {
                qApp->quit();
        }
}

void mytimer::timerUpdate()
{
        QDateTime time =QDateTime::currentDateTime();

        QString str = time.toString("yyyy-MM-dd hh:mm:ss dddd");

        ui->lineEdit->setText(str);

        int rand =qrand()%300;
        ui->lineEdit->move(rand,rand);
}

mytimer.cpp文件中的Ui(红色字体),显示“Error:不允许使用不完整的类型”,如图

新手刚学,有没有大神指导下


附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册
回复

使用道具 举报

累计签到:10 天
连续签到:1 天
2016-7-12 10:07:05 显示全部楼层
问题解决了,把namespace Ui{class mytimer;}改成namespace Ui{class mytimerClass;}就行了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了