qt 如何 从一个界面 调用 另一个界面

软件钢琴师 2013-10-12 12:02:05
qt 如何 从一个界面 调用 另一个界面,界面是用代码写的
...全文
10173 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
QQ_278397935 2014-12-10
  • 打赏
  • 举报
回复
别人给修改指导的代码: [code=c#ifndef RESEVER_H #define RESEVER_H #include "send.h"//包含子界面,,,。。,,没错,,是需要包含。。建议你不要把这个语句放在cpp里面。 #include <QWidget> namespace Ui { class resever; } class resever : public QWidget { Q_OBJECT public: explicit resever(QWidget *parent = 0); ~resever(); private: Ui::resever *ui; send *send1; private slots: void dataprocess(int value); void on_pushButton_clicked(); }; #endif // RESEVER_H ][/code]
#ifndef SEND_H
#define SEND_H

#include <QDialog>

namespace Ui {
    class send;
}

class send : public QDialog
{
    Q_OBJECT

signals:
    void sent_data(int);
public:
    explicit send(QWidget *parent = 0);
    ~send();

private slots:
    void on_pushButton_clicked();

private:
    Ui::send *ui;
};

#endif // SEND_H
#include "resever.h"
#include "ui_resever.h"
//你这个代码的功能是在reserve界面调用send界面使之显示出来,
//将send界面的数值传送给reserve界面。。好,你发现没,,你传送的数值是有限的,,太长了 就传不了,因为你的int类型的限制。
resever::resever(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::resever)
{
    ui->setupUi(this);  
    send1 = new send;///?这里只需要实例化send,你去reserve.h里面看看去,定义的部分放在里面了。
                    //定义的部分还是放在.h里面好(保证你在void resever::on_pushButton_clicked()里面不需要重新定义一个新的对象)
                    //,,名字是 send1,以便下一行语句使用到。
    connect(send1,SIGNAL(sent_data(int)),this,SLOT(dataprocess(int)));
    //?这里就是信号槽机制了,只是接受 发送的对象是两个,不是传统的我发送,我接受。
     //来自send1 的一个信号,当前对象接受到信号后做dataprocess(int)操作
                 // send2->show();//还有,这里我不想显示。不显示的话发射的信号就过不来。

}

resever::~resever()
{
    delete ui;
}
void resever::dataprocess(int value)
{
    ui->lcdNumber->display(value);
}
void resever::on_pushButton_clicked()
{
    //send *send1=new send(this);//现在的问题是这个按钮打开的界面和在构造函数里面的链接不是一样,所以不能用,怎么解决
                                  //完全没必要重新定义一个send的 对象。就使用原来的send1就可以了。
    send1->show();            //你这里是想干啥啊?想显示send。ui???
}
#include "send.h"
#include "ui_send.h"

send::send(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::send)
{
    ui->setupUi(this);
}

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

void send::on_pushButton_clicked()
{
    emit sent_data(ui->lineEdit->text().toInt(false));
}
QQ_278397935 2014-11-06
  • 打赏
  • 举报
回复
努力吧,小伙伴。
醉过方知酒烈 2013-10-12
  • 打赏
  • 举报
回复
这问题也问啊,最基本的要自己学习一下啊
绝版紫太狼 2013-10-12
  • 打赏
  • 举报
回复
在点击某个按钮 让相应事件里show你要调用的那个界面
numen27 2013-10-12
  • 打赏
  • 举报
回复
假设你的另一个界面类叫做MyWidget,只要这样调用就可以了: MyWidget* pWidget = new MyWidget(); pWidget->show(); 别忘了包含MyWidget类的头文件

16,815

社区成员

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

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