Russian Qt Forum

Qt => Вопросы новичков => Тема начата: mokynis от Август 08, 2018, 11:40



Название: свернутое окно в MDI
Отправлено: mokynis от Август 08, 2018, 11:40
с MDI редко сталкивался. Открываю SubWindow в MDIArea. Жму кнопку "свернуть", потом жму "восстановить" (или "на всю область"-не важно). Дочернее окно открывается пустое. Как будто только что созданное. Как это победить? QT4, Debian


Название: Re: свернутое окно в MDI
Отправлено: nvek от Август 10, 2018, 10:46
А эта таблица - tableView? и там есть модель?


Название: Re: свернутое окно в MDI
Отправлено: mokynis от Август 10, 2018, 16:24
да это вообще не важно. Вот форма-обычный Dialog с QLabel на нем. Та же картина


Название: Re: свернутое окно в MDI
Отправлено: Fregloin от Сентябрь 05, 2018, 11:49
А как вы устанавливали встроенные виджеты? Через setCentalWidget?


Название: Re: свернутое окно в MDI
Отправлено: __Heaven__ от Сентябрь 06, 2018, 07:12
Я бы ещё родителей пропавших перепроверил бы


Название: Re: свернутое окно в MDI
Отправлено: mokynis от Сентябрь 18, 2018, 13:51
Цитировать
как вы устанавливали встроенные виджеты?
в редакторе форм
Цитировать
Я бы ещё родителей пропавших перепроверил бы
не пойму, где их искать. После нажатия "развернуть" он вообще ни в одну функцию не заходит, вроде их и нет. Собственно, их и нет на самом деле. Даже конструктор не запускается


Название: Re: свернутое окно в MDI
Отправлено: __Heaven__ от Сентябрь 19, 2018, 09:18
Как выглядит создание окон? Покажите код


Название: Re: свернутое окно в MDI
Отправлено: mokynis от Сентябрь 19, 2018, 11:35
это выбираем пункт меню "о программе"
Код:
void MainWindow::slotAbout()
{
    about *finf=new about();
    ui->mdiArea->addSubWindow(finf);
    finf->show();
    if(finf->exec()==QDialog::Rejected){}
    delete finf;
}
а это реализация формы
Код:
#include "about.h"
#include "ui_about.h"

about::about(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::about)
{
    ui->setupUi(this);
    ui->label->setText("Программа ....\n"
                       "Разработана для ...\n"
                       "Использование запрещено.");
}

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


Название: Re: свернутое окно в MDI
Отправлено: demal от Сентябрь 19, 2018, 12:11

мне кажется проще:

    about *finf=new about();
    finf->setAttribute(Qt::WADeleteOnClose);
    ui->mdiArea->addSubWindow(finf);
    finf->show();


Название: Re: свернутое окно в MDI
Отправлено: mokynis от Сентябрь 19, 2018, 14:47
Цитировать
мне кажется проще:
не буду спорить, но вопрос не об этом, а о том, что после сворачивания форма открывается без виджетов на ней


Название: Re: свернутое окно в MDI
Отправлено: demal от Сентябрь 19, 2018, 17:48
А ты когда редактируешь форму, ты в ней компоновку общую для всей формы задаешь? У меня нет таких глюков, но в каждом дочернем окне, которое я вставляю в MDI в дизайнере в обязательном порядке в целом для всего окна задаётся компановка.


Название: Re: свернутое окно в MDI
Отправлено: mokynis от Сентябрь 20, 2018, 08:29
а как же


Название: Re: свернутое окно в MDI
Отправлено: demal от Сентябрь 20, 2018, 08:39
Это ты чего обвел?


Название: Re: свернутое окно в MDI
Отправлено: __Heaven__ от Сентябрь 20, 2018, 09:07
Код
C++ (Qt)
about *finf=new about(ui->mdiArea);
 
может так получится?


Название: Re: свернутое окно в MDI
Отправлено: mokynis от Сентябрь 20, 2018, 10:07
Цитировать
Это ты чего обвел?
эти значки указывают на то, что можно отменить компоновку, т.е. она имеется и именно для всей формы
Цитировать
может так получится?
тот же результат-пустая форма


Название: Re: свернутое окно в MDI
Отправлено: demal от Сентябрь 20, 2018, 12:21
А какая версия у тебя QT и устанавливается ли mdiarea как центральный виджет?


Название: Re: свернутое окно в MDI
Отправлено: mokynis от Сентябрь 20, 2018, 13:49
см. самое первое мое сообщение


Название: Re: свернутое окно в MDI
Отправлено: Fregloin от Сентябрь 20, 2018, 14:43
setCentralWidget копайте в эту сторону


Название: Re: свернутое окно в MDI
Отправлено: demal от Сентябрь 20, 2018, 16:10
см. самое первое мое сообщение
4.0, 4.1 .... 4.7? Какая? Они отличаются.


Название: Re: свернутое окно в MDI
Отправлено: mokynis от Сентябрь 21, 2018, 08:12
Цитировать
какая версия у тебя QT
извиняюсь-Qt4.8.6
Цитировать
setCentralWidget копайте в эту сторону
Код:
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->setCentralWidget(ui->mdiArea);
никакого результата. Может не так делаю?


Название: Re: свернутое окно в MDI
Отправлено: demal от Сентябрь 21, 2018, 15:11
Был у меня несколько раз глюк на 4.8 когда moc  неправильно отрабатывал. Изменяешь формы, значения в формах, а он ничего при компиляции не менял. Лечилось это удалением всего автоматически созданного ручками и сборкой заново, make clean в этом случае не помогал. Может у тебя такая же беда?


Название: Re: свернутое окно в MDI
Отправлено: mokynis от Сентябрь 21, 2018, 16:10
спасибо, попробую