彩阳:打开对话框的代码要这么写:
TheDialog theDialog;
theDialog.exec( );
或者
.......
(2014-07-05 23:18) 
//////////////display.h//////////
#ifndef DISPLAY_H
#define DISPLAY_H
#include"search.h"
#include <QWidget>
namespace Ui {
class display;
}
class display : public QWidget
{
Q_OBJECT
signals:
void send_signal_0(int);
void send_signal_1(int);
void send_signal_2(int);
public:
explicit display(QWidget *parent = 0);
~display();
private:
Ui::display *ui;
Search *searchServer;
private slots:
void on_searchServer_0_clicked();
void on_searchServer_1_clicked();
void on_searchServer_2_clicked();
};
#endif // DISPLAY_H
///////////////////end////////////////////////////
////////////////display.cpp///////////////////
#include "display.h"
#include "ui_display.h"
display::display(QWidget *parent) :
QWidget(parent),
ui(new Ui::display)
{
ui->setupUi(this);
//主程序退出,子窗口同时关闭,Qt::WA_QuitOnClose属性是使窗口如果是最后一个关闭的时候触发事件lastWindowClosed(),默认true
this->setAttribute(Qt::WA_QuitOnClose,false);
}
display::~display()
{
delete ui;
}
void display::on_searchServer_0_clicked()
{
searchServer=new Search();
searchServer->show();
searchServer->setWindowTitle(tr("page0"));
int value=0;
emit send_signal_0(value);
}
void display::on_searchServer_1_clicked()
{
searchServer=new Search();
searchServer->show();
searchServer->setWindowTitle(tr("page1"));
int value=1;
emit send_signal_1(value);
}
void display::on_searchServer_2_clicked()
{
searchServer=new Search();
searchServer->show();
searchServer->setWindowTitle(tr("page2"));
int value=2;
emit send_signal_2(value);
}
//////////////////////end/////////////////
///////////////////search.h//////////
#ifndef SEARCH_H
#define SEARCH_H
#include <QWidget>
#include "QTableWidget"
#include "QTableWidgetItem"
namespace Ui {
class Search;
}
class Search : public QWidget
{
Q_OBJECT
public:
explicit Search(QWidget *parent = 0);
~Search();
int get_num;
public slots:
private slots:
void receive_signal_value(int value);
private:
Ui::Search *ui;
};
#endif // SEARCH_H
///////////end///////////////////
///////////////search.cpp/////////////////
#include "search.h"
#include "ui_search.h"
#include<QHeaderView>
#include<QTableWidget>
#include <stdio.h>
////////////////////////
#include "display.h"
//#include "ui_display.h"
Search::Search(QWidget *parent) :
QWidget(parent),
ui(new Ui::Search)
{
ui->setupUi(this);
this->setAttribute(Qt::WA_QuitOnClose,false);//主窗口退出,子窗口退出
this->setWindowFlags(Qt::Window&Qt::WindowMaximizeButtonHint&Qt::WindowMinimizeButtonHint);
ui->search_tableWidget->setColumnWidth(0,130);
display *dlg=new display;
connect(dlg,SIGNAL(send_signal_0(int)),this,SLOT(receive_signal_value(int)));
connect(dlg,SIGNAL(send_signal_1(int)),this,SLOT(receive_signal_value(int)));
connect(dlg,SIGNAL(send_signal_2(int)),this,SLOT(receive_signal_value(int)));
}
Search::~Search()
{
delete ui;
}
void Search::receive_signal_value(int value)
{
get_num=value;
if (fu_num==0)
{
ui->search_tableWidget->setItem(0,0,new QTableWidgetItem("第一"));
}
if (fu_num==1)
{
ui->search_tableWidget->setItem(0,0,new QTableWidgetItem("第二"));
}
if (fu_num==2)
{
ui->search_tableWidget->setItem(0,0,new QTableWidgetItem("第三"));
}
}
////////////end//////////////