Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Andrey от Октябрь 17, 2012, 14:16



Название: Вывести вторую форму при нажатии на кнопку первой формы
Отправлено: Andrey от Октябрь 17, 2012, 14:16
Доброго дня. Я самый начинающий. Подскажите как это правильно сделать? Есть две формы. Одна сгенерирована автоматически. Другую добавил как dialog.ui. Разместил одну кнопку на mainwindow.ui . Пытаюсь вызвать форму dialog.ui форма сама выводиться, но она пустая. Хотя на ней размещены виджеты. Вот код:
 #-------------------------------------------------
#
# Project created by QtCreator 2012-10-17T14:24:35
#
#-------------------------------------------------

QT       += core gui

TARGET = Proba
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui \
    dialog.ui


#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QDialog>

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    void on_pushButton_clicked();

private:
    Ui::MainWindow *ui;

};



#endif // MAINWINDOW_H






#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<ui_dialog.h>
#include<QDialog>
#include <QWidget>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    QDialog *mn = new QDialog();
            mn->show();
}


Название: Re: Вывести вторую форму при нажатии на кнопку первой формы
Отправлено: mutineer от Октябрь 17, 2012, 14:19
QDialog это стандартный пустой диалог, к твоей форме отношения не имеющий


Название: Re: Вывести вторую форму при нажатии на кнопку первой формы
Отправлено: Andrey от Октябрь 17, 2012, 14:28
Может подскажите примитивный пример чтобы смог выводить форму с любым виджетом......


Название: Re: Вывести вторую форму при нажатии на кнопку первой формы
Отправлено: mutineer от Октябрь 17, 2012, 14:30
смог выводить форму с любым виджетом......

Это как?


Название: Re: Вывести вторую форму при нажатии на кнопку первой формы
Отправлено: mutineer от Октябрь 17, 2012, 14:33
Код
C++ (Qt)
MainWindow::MainWindow(QWidget *parent) :
   QMainWindow(parent),
   ui(new Ui::MainWindow)
{
   ui->setupUi(this);
}

вот тут вот и устанавливается связь между объектом класса MainWindow и формой из дизайнера


Название: Re: Вывести вторую форму при нажатии на кнопку первой формы
Отправлено: Andrey от Октябрь 17, 2012, 14:36
Я так понял это для первой формы основной?


Название: Re: Вывести вторую форму при нажатии на кнопку первой формы
Отправлено: Andrey от Октябрь 17, 2012, 14:37
а как для второй сделать нужно другой класс писать?


Название: Re: Вывести вторую форму при нажатии на кнопку первой формы
Отправлено: mutineer от Октябрь 17, 2012, 14:38
да


Название: Re: Вывести вторую форму при нажатии на кнопку первой формы
Отправлено: Andrey от Октябрь 17, 2012, 14:43
Покорно благодарю. Я конечно извиняюсь. А конструктор нового класса мне где нужно писать в файле mainwindow.cpp


Название: Re: Вывести вторую форму при нажатии на кнопку первой формы
Отправлено: mutineer от Октябрь 17, 2012, 14:48
В файле, в котором у тебя находится реализация этого нового класса. А еще лучше воспользуйся мастером из криэйтора


Название: Re: Вывести вторую форму при нажатии на кнопку первой формы
Отправлено: Andrey от Октябрь 17, 2012, 14:49
Спасибо! буду пробовать.