QT创建对象传递参数问题;

weiguozhe 2012-03-15 10:48:27
这是第一个页面的一个函数,我想通过这个函数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)
{

}
...全文
655 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dext 2012-03-16
  • 打赏
  • 举报
回复

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;
}


weiguozhe 2012-03-16
  • 打赏
  • 举报
回复
回复二楼
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 这个参数代表什么意思???????????
hemiya 2012-03-15
  • 打赏
  • 举报
回复
这个没错误了

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)
{

}
hemiya 2012-03-15
  • 打赏
  • 举报
回复
看这个。

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)
{

}
hemiya 2012-03-15
  • 打赏
  • 举报
回复

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)
{

}

16,240

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧