Qt 窗口间的信号传递

来源:互联网 发布:origin数据表转换矩阵 编辑:程序博客网 时间:2024/06/08 19:07

应用场景:
主窗口下创建了一个子窗口为其成员,当点击子窗口内的按钮时,主窗口接收其信号并做处理

示例:
子窗口类:

#ifndef UPDATE_VIEW_H#define UPDATE_VIEW_H#include "ui_update_subwindows.h"#include <QtGui/QMainWindow>class UpdateView : public QMainWindow{    Q_OBJECTprivate:    Ui_update::Update_MainWindow ui;public:    UpdateView(QWidget* parent = 0,Qt::WFlags flags = 0);    ~UpdateView();signals:    void up_select_update_file(QPushButton *);private slots:    void emit_select_button();};#endif //
#include "UpdateView.h"UpdateView::UpdateView(QWidget* parent,Qt::WFlags flags) : QMainWindow(parent,flags){    ui.setupUi(this);    connect(ui.pushButton,SIGNAL(clicked()),this,SLOT(emit_select_button()));}UpdateView :: ~UpdateView(){}void UpdateView::emit_select_button(){    emit up_select_update_file(ui.pushButton);}

主窗口信号槽

void export_da::update_da(){    update_view = new UpdateView(this);    connect(update_view,SIGNAL(up_select_update_file(QPushButton*)),this,SLOT(select_update_file(QPushButton*)));    update_view->show();}

这里的update_view 即使我的子窗口,而其发送的信号函数up_select_update_file里的参数是QPushButton* 类型,实现的是,我想将子窗口的按钮传递给主窗口,采用主窗口的内容去set这个按钮。

void export_da::select_update_file(QPushButton* update_file){    update_file_name = QFileDialog::getOpenFileName(this,tr("Save File"),".",tr("TEXT files (.txt)"));    update_file->setText(update_file_name);}
0 0
原创粉丝点击