前两天用qt写了一个记事本程序, 其中要实现查找功能。我们都知道点击记事本的查找按钮, 是会弹出一个对话框,如下图:
这里我们可以看到有两个窗口,问题是怎么把查找对话框的内容传送到主窗口呢? 毕竟是主窗口要搜索textedit实现查找的功能。
这里有两种方法:
方法一:使用signal/slots机制,建立两个窗口mainwindow 和 finddialog, finddialog给mainwindow 传值
话不多说,直接贴代码:
finddialog.h
#ifndef FINDDIALOG_H
#define FINDDIALOG_H
#include <QDialog>
#include <QTextDocument>
#include "public_define.h"
//#ifndef _MESSAGE_STRUCT_
//#define _MESSAGE_STRUCT_
//#endif
namespace Ui {
class FindDialog;
}
class FindDialog : public QDialog
{
Q_OBJECT
public:
explicit FindDialog(QWidget *parent = 0);
~FindDialog();
signals:
void SendFindText(QString &str);
void SendFindText(struct message_info &struct_message_info);
private slots:
void on_pushButton_find_clicked();
void on_pushButton_cancel_clicked();
private:
Ui::FindDialog *ui;
struct message_info m_stru_message_info;
};
#endif // FINDDIALOG_H
finddialog.cpp
#include "findd