当前位置:编程学习 > wap >>

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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,