码迷,mamicode.com
首页 > 其他好文 > 详细

Qt 窗口间的信号传递

时间:2015-04-10 11:26:36      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:qt4   多窗口   信号槽   应用   

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

示例:
子窗口类:

#ifndef UPDATE_VIEW_H
#define UPDATE_VIEW_H

#include "ui_update_subwindows.h"
#include <QtGui/QMainWindow>

class UpdateView : public QMainWindow{
    Q_OBJECT
private:
    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);
}

Qt 窗口间的信号传递

标签:qt4   多窗口   信号槽   应用   

原文地址:http://blog.csdn.net/bbinchina/article/details/44976449

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!