Прошу "не пинать" сильно, если вопрос не сложный - но поискав в интернете - ответ на него так и не нашел.
Суть вопроса: необходимо из главной формы (mainwindow) вызвать (создать) еще одну форму (Form1). Делал все аналогично тому, что описано в справке, но при вызове второй формы (создается на основе QWidget) она появляется на доли секунды и исчезает, но в то же время, если форму сделать на основе QDialog и вызывать ее через exec() - то она появляется и все работает нормально. Такое чувство, что она исчезает тогда, когда завершается функция нажатия клавиши по событию которой она создается (я просто не понял еще точно всю модель сигналов и слотов QT, возможно тут как то по другому нужно работать). Подскажите где копать ну или киньте ссылкой где можно это почерпнуть, желательно с примером?
Коды:
mainwindow.cppC++ (Qt)
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "form1.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
Form1 w2;
w2.show();
}
form1.cppC++ (Qt)
#include "form1.h"
#include "ui_form1.h"
Form1::Form1(QWidget *parent) :
QWidget(parent),
m_ui(new Ui::Form1)
{
m_ui->setupUi(this);
}
Form1::~Form1()
{
delete m_ui;
}
void Form1::changeEvent(QEvent *e)
{
QWidget::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
m_ui->retranslateUi(this);
break;
default:
break;
}
}
P/s: если важно, Qt 4.5.3 на Windows платформе; все формы создаются в дизайнере.