900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Qt工作笔记-QDialog模式对话框传递数据给主窗口

Qt工作笔记-QDialog模式对话框传递数据给主窗口

时间:2024-05-19 04:05:28

相关推荐

Qt工作笔记-QDialog模式对话框传递数据给主窗口

话不多说,上图:

这里同样是采用了Qt的信号与槽机制。

项目文件分布如下:

代码如下:

dialog.h

#ifndef DIALOG_H#define DIALOG_H#include <QDialog>namespace Ui {class Dialog;}class Dialog : public QDialog{Q_OBJECTsignals:void sendData(QString data);public:explicit Dialog(QWidget *parent = 0);~Dialog();public slots:void pressBtn();private:Ui::Dialog *ui;};#endif // DIALOG_H

widget.h

#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include "dialog.h"namespace Ui {class Widget;}class Widget : public QWidget{Q_OBJECTpublic slots:void pressBtn();void updateData(QString data);public:explicit Widget(QWidget *parent = 0);~Widget();private:Ui::Widget *ui;Dialog *dialog;};#endif // WIDGET_H

dialog.cpp

#include "dialog.h"#include "ui_dialog.h"Dialog::Dialog(QWidget *parent) :QDialog(parent),ui(new Ui::Dialog){ui->setupUi(this);connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(pressBtn()));}void Dialog::pressBtn(){emit sendData(ui->lineEdit->text());this->close();}Dialog::~Dialog(){delete ui;}

widget.cpp

#include "widget.h"#include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget){ui->setupUi(this);connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(pressBtn()));}void Widget::updateData(QString data){ui->textEdit->append(data);}void Widget::pressBtn(){dialog=new Dialog();connect(dialog,SIGNAL(sendData(QString)),this,SLOT(updateData(QString)));if(dialog->exec()==QDialog::Accepted){}delete dialog;}Widget::~Widget(){delete ui;}

main.cpp

#include "widget.h"#include <QApplication>int main(int argc, char *argv[]){QApplication a(argc, argv);Widget w;w.show();return a.exec();}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。