QT错误:从QWidget *到QDialog *的无效转换

时间:2016-10-08 11:21:22

标签: c++ qt qwidget qdialog

请注意:我还是c ++的新手,尝试使用qt creator自学。

我有以下错误:

/home/cx/qt-projects/project-i/loginstatusdialog.cpp:11: error: invalid conversion from 'QWidget*' to 'QDialog*' [-fpermissive]
     ui->setupUi(parent);
                       ^

我的标题文件:

#ifndef LOGINSTATUSDIALOG_H
#define LOGINSTATUSDIALOG_H

#include <QDialog>
#include <QtCore>
#include <QtGui>
#include <QtWidgets>
#include <thread>
#include "enums.h"

namespace Ui {
class LoginStatusDialog;
}

class LoginStatusDialog : public QDialog
{
    Q_OBJECT

public:
//    explicit LoginStatusDialog(QWidget *parent = 0);
    explicit LoginStatusDialog(QWidget *parent = 0, const QString &_login = NULL, const QString &_key = NULL);
    ~LoginStatusDialog();

private:

    Ui::LoginStatusDialog *ui;
    QString login, key;
};
#endif // LOGINSTATUSDIALOG_H

实施如下

#include "loginstatusdialog.h"
#include "ui_loginstatusdialog.h"


QString DBServerIP = "81.4.122.16";
QString googleDNS = "8.8.8.8";


LoginStatusDialog::LoginStatusDialog(QWidget *parent, const QString &_login, const QString &_key) : QDialog(parent), ui(new Ui::LoginStatusDialog), login(_login), key(_key)
{
    ui->setupUi(parent);                   <<< -------- ISSUE LIES HERE ---------
    //some code here, etc.
    setResult(ENUM_SUCCESS);
}

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

我发现帖子的问题比较温和,但我不遵循建议的解决方案,

对此解决方案的帮助表示赞赏。

0 个答案:

没有答案