C++ (Qt)#ifndef FORMGEN_H#define FORMGEN_H#include <QWidget>#include <QtGui/QDialog>#include <ui_formgen.h>#include <ui_formhelp.h>namespace Ui { class FormGen;}class FormGen : public QWidget, Ui::FormGen{ Q_OBJECTpublic: explicit FormGen(QWidget *parent = 0); ~FormGen();private: Ui::FormGen *ui;public slots: void button_click_help();};class FormHelp : public QDialog, Ui::FormHelp{};#endif // FORMGEN_H
C++ (Qt)#include "formgen.h"#include "ui_formgen.h"#include <Qt>FormGen::FormGen(QWidget *parent) : QWidget(parent), ui(new Ui::FormGen){ ui->setupUi(this); /*Заполнение ComboBox CBOS*/ ui->CBOS->addItem(QString("Debian"), 1); ui->CBOS->addItem(QString("Fedora"), 2); ui->CBOS->addItem(QString("Ubuntu"), 3); /*Кнопка вызова справки*/ QObject::connect(ui->HButton, SIGNAL(clicked()), this, SLOT(button_click_help())); /*Кнопка Выход*/ QObject::connect(ui->QButton, SIGNAL(clicked()), this, SLOT(close()));}FormGen::~FormGen(){ delete ui;}void FormGen::button_click_help(){ FormHelp *formh = new FormHelp(); formh->show(); formh->activateWindow();// formh->setAttribute(QT::WA_DeleteOnClose);}
FormHelp *formh = new FormHelp();
#ifndef FORMGEN_H#define FORMGEN_H#include <QWidget>#include <QtGui/QDialog>#include <ui_formgen.h>#include <ui_formhelp.h>namespace Ui { class FormGen;}class FormGen : public QWidget, Ui::FormGen{ Q_OBJECTpublic: explicit FormGen(QWidget *parent = 0); ~FormGen();private: Ui::FormGen *ui; //-------------------------------------------------------------------- // здесь создаешь указатель на дочернюю форму (он тут еще пустой) FormHelp *formh;public slots: void button_click_help();};class FormHelp : public QDialog, Ui::FormHelp{};#endif // FORMGEN_H
#include "formgen.h"#include "ui_formgen.h"#include <Qt>FormGen::FormGen(QWidget *parent) : QWidget(parent), ui(new Ui::FormGen){ ui->setupUi(this); //-------------------------------------------------------------------- // здесь создаешь 1(ОДНО) дочернее окно и присваиваешь его адрес указателю. // теперь в любом месте этого файла ты можешь по этому указателю обращаться к дочернему окну formh = new FormHelp(); /*Заполнение ComboBox CBOS*/ ui->CBOS->addItem(QString("Debian"), 1); ui->CBOS->addItem(QString("Fedora"), 2); ui->CBOS->addItem(QString("Ubuntu"), 3); /*Кнопка вызова справки*/ QObject::connect(ui->HButton, SIGNAL(clicked()), this, SLOT(button_click_help())); /*Кнопка Выход*/ QObject::connect(ui->QButton, SIGNAL(clicked()), this, SLOT(close()));}FormGen::~FormGen(){ delete ui;}void FormGen::button_click_help(){ //------------------------------------------------------- // тут ничего создавать ненадо, у тебя окно уже создано, но еще спрятано и команда show его показывает пользователю :) formh->show(); formh->activateWindow();// formh->setAttribute(QT::WA_DeleteOnClose);}