头文件
#ifndef PRINTER_H
#define PRINTER_H
#include <QDialog>
class QDialogButtonBox;
class QPushButton;
class QTabWidget;
// 1
class widget_printer : public QDialog
{
Q_OBJECT
public:
widget_printer(QWidget *parent = 0);
private:
QTabWidget *tabwidget;
};
// 2
class tab_port:public QDialog
{
Q_OBJECT
public:
tab_port(QWidget *parent = 0);
private:
QDialogButtonBox *buttonBox;
};
// 3
class tab_options:public QDialog
{
Q_OBJECT
public:
tab_options(QWidget *parent = 0);
private:
QPushButton *closebutton;
};
#endif
构造函数
#include <QtGui>
#include "test.h"
widget_printer::widget_printer(QWidget *parent):QDialog(parent)
{
tabwidget = new QTabWidget;
tabwidget->addTab(new tab_port,tr("&Ports"));
tabwidget->addTab(new tab_options,tr("&tab_options"));
QVBoxLayout *vbox = new QVBoxLayout;
vbox->addWidget(tabwidget);
setLayout(vbox);
}
tab_port::tab_port(QWidget *parent):QDialog(parent)
{
buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok
| QDialogButtonBox::Cancel);
QVBoxLayout *vbox = new QVBoxLayout;
vbox->addWidget(buttonBox);
setLayout(vbox);
connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
}
tab_options::tab_options(QWidget *parent):QDialog(parent)
{
closebutton = new QPushButton(tr("Close"));
QLabel *label = new QLabel(tr("test test test"));
QVBoxLayout *vbox = new QVBoxLayout;
vbox->addWidget(label);
vbox->addWidget(closebutton);
setLayout(vbox);
connect(closebutton,SIGNAL(clicked()),this ,SLOT(close()));
}
我想tab_options中点击closebutton按钮,然后关闭整个窗口,而不是仅仅关闭tab_options子窗体,
connect(closebutton,SIGNAL(clicked()),this ,SLOT(close()));这句的this指针要怎么该,才能将信号
传给widget_printer 。。。