Я хотел создать окно из главного окна и отправить его указатель на мое главное окно. Я сделал это один раз, и я хотел бы сделать это снова, но второй раз, я всегда эта ошибка при компиляции «нет необходимости конструктора по умолчанию доступной»нет соответствующего конструктора по умолчанию, но конструктор объявлен
Главное окно:
#include "costsimulator.h"
#include "ui_costsimulator.h"
#include "stonepricewindow.h"
CostSimulator::CostSimulator(AionEnhancingSimulator *parent) : ui(new Ui::CostSimulator)
{
ui->setupUi(this);
parentPtr = parent;
stonePrice = createStonePrice();
connect(ui->aionEnhancingSimulator, SIGNAL(clicked()), this, SLOT(showAionEnhancingSimulatorWindow()));
connect(ui->stonePriceButton, SIGNAL(clicked()), this, SLOT(showStonePriceWindow()));
}
CostSimulator::~CostSimulator()
{
delete ui;
}
void CostSimulator::showAionEnhancingSimulatorWindow()
{
this->hide();
parentPtr->show();
}
QStringList *createStonePrice()
{
QStringList *tmp = new QStringList();
tmp->push_back(QString("80-30000000"));
return (tmp);
}
void CostSimulator::showStonePriceWindow()
{
StonePriceWindow *stonepricewindow = new StonePriceWindow(this);
stonepricewindow->show();
}
QStringList *CostSimulator::getStonePrice()
{
return (stonePrice);
}
и заголовок :
#ifndef COSTSIMULATOR_H
#define COSTSIMULATOR_H
#include <QDialog>
#include "aionenhancingsimulator.h"
namespace Ui {
class CostSimulator;
}
class CostSimulator : public QDialog
{
Q_OBJECT
public:
AionEnhancingSimulator *parentPtr;
explicit CostSimulator(AionEnhancingSimulator *parent);
~CostSimulator();
QStringList *stonePrice;
QStringList *createStonePrice();
QStringList *getStonePrice();
void showStonePriceWindow();
public slots:
void showAionEnhancingSimulatorWindow();
private:
Ui::CostSimulator *ui;
};
#endif // COSTSIMULATOR_H
и окна, которые вызывают проблемы:
#include "stonepricewindow.h"
#include "ui_stonepricewindow.h"
#include <QStringListModel>
#include <QStandardItemModel>
#include <QtGui>
StonePriceWindow::StonePriceWindow(CostSimulator *parent) : ui(new Ui::StonePriceWindow)
{
ui->setupUi(this);
displayStonePriceList(parent);
}
StonePriceWindow::~StonePriceWindow()
{
delete ui;
}
void StonePriceWindow::displayStonePriceList(CostSimulator *parent)
{
// To do
}
заголовке
#ifndef STONEPRICEWINDOW_H
#define STONEPRICEWINDOW_H
#include <QDialog>
#include "costsimulator.h"
namespace Ui {
class StonePriceWindow;
}
class StonePriceWindow : public QDialog
{
Q_OBJECT
public:
explicit StonePriceWindow(CostSimulator *parent = 0);
~StonePriceWindow();
void displayStonePriceList(CostSimulator *parent);
private:
Ui::StonePriceWindow *ui;
};
#endif // STONEPRICEWINDOW_H
, если бы я это «StonePriceWindow() {}» в заголовке StonePriceWindow, я не следующая ошибка: «указано несколько конструкторов по умолчанию» и всегда «нет необходимости и т.д ..»
Спасибо за любую помощь, я не понимаю, почему.
Вместо того, чтобы потопить людей с кодом, вы действительно можете предоставить ошибку компиляции _exact_ и строку, на которой она была включена. – cmannett85
stonepricewind.cpp: 7: erreur: C2512: 'Ui :: StonePriceWindow': нет подходящего конструктора по умолчанию, и он находится на этой строке: StonePriceWindow :: StonePriceWindow (CostSimulator * parent): ui (новый Ui :: StonePriceWindow) { ui-> setupUi (это); displayStonePriceList (родительский); } – user2102526
Правильно, поэтому существуют два класса StonePriceWindow, один в пространстве имен 'Ui', и это вызывает проблему. Я бы предложил посмотреть на ui_stonepricewindow.h –