QT创建对象传递参数问题;
这是第一个页面的一个函数,我想通过这个函数new一个新的页面,同时想通过Dial()函数传递一个参数(字符串)进去,dial类是继承QDialog类的,但在QDialog类中没有与字符串相关的参数,请问要怎样才能在new dial()是传个字符串给Dial这个构造函数????????????????// Dial *dial_interface 定义dial_interface
void Iphone::startDial(void)
{
dial_interface = new Dial();
dial_interface->show();
this->close();//关掉第一个界面
}
//dial.h
#include <QDialog>
#include <QPushButton>
class Dial : public QDialog
{
Q_OBJECT
public:
//Dial ( QWidget * parent = 0, Qt::WindowFlags f = 0 );
Dial ( QWidget * parent = 0);
~Dial(void);
};
//dial.cpp
#include "dial.h"
//Dial::Dial (QWidget *parent, Qt::WindowFlags f)
//: QDialog(parent, f)
Dial::Dial (QWidget *parent)
: QDialog(parent)
{
resize(240,320);
}
Dial::~Dial(void)
{
} --------------------编程问答--------------------
--------------------编程问答-------------------- 看这个。
void Iphone::startDial(void)
{
dial_interface = new Dial(NULL, "string");
dial_interface->show();
this->close();//关掉第一个界面
}
class Dial : public QDialog
{
Q_OBJECT
public:
Dial ( QWidget * parent = 0, QString s);
~Dial(void);
private:
QString m_str;
};
//dial.cpp
#include "dial.h"
Dial::Dial (QWidget *parent, QString s)
: QDialog(parent), m_str(s)
{
resize(240,320);
}
Dial::~Dial(void)
{
}
--------------------编程问答-------------------- 这个没错误了
void Iphone::startDial(void)
{
dial_interface = new Dial("string", NULL);
dial_interface->show();
this->close();//关掉第一个界面
}
class Dial : public QDialog
{
Q_OBJECT
public:
Dial ( QString s, QWidget * parent = 0, );
~Dial(void);
private:
QString m_str;
};
//dial.cpp
#include "dial.h"
Dial::Dial (QString s, QWidget *parent)
: QDialog(parent), m_str(s)
{
resize(240,320);
}
Dial::~Dial(void)
{
}
--------------------编程问答--------------------
void Iphone::startDial(void)
{
dial_interface = new Dial("string", NULL);
dial_interface->show();
this->close();//关掉第一个界面
}
class Dial : public QDialog
{
Q_OBJECT
public:
Dial ( QString s, QWidget * parent = 0);
~Dial(void);
private:
QString m_str;
};
//dial.cpp
#include "dial.h"
Dial::Dial (QString s, QWidget *parent)
: QDialog(parent), m_str(s)
{
resize(240,320);
}
Dial::~Dial(void)
{
}
--------------------编程问答-------------------- 回复二楼
class Dial : public QDialog
{
Q_OBJECT
public:
explicit Dial(QWidget *parent = 0);
Dial(QWidget *parent, QString str);
~Dial();
private:
Ui::Dialog *ui;
QString yourStr;
};
Dial::Dial(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog) {
ui->setupUi(this);
}
Dial::Dial(QWidget *parent, QString str) :
QDialog(parent),
yourStr(str),
ui(new Ui::Dialog) {
ui->setupUi(this);
}
Dial::~Dial()
{
delete ui;
}
QDialog的原型是 QDialog ( QWidget * parent = 0, Qt::WindowFlags f = 0 )
我的dial是继承 QDialog的,你的第一个回复是Dial ( QWidget * parent = 0, QString s);
这样我编译时会出错,但是根据你的第二个回复,我改成Dial ( QString s, QWidget * parent = 0);
后就可以编译成功了,第二个Dial中的2个参数没有和QDialog类中的对应,但却不会出问题,而第一个中的有对应却会出问题,请问这是为什么啊????
还有Qt::WindowFlags f = 0 这个参数代表什么意思???????????
补充:移动开发 , Qt