crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Создание и добавление окон в QMdiArea, Как реализовать?
bynet
  опции профиля:
сообщение 2.11.2010, 12:16
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 69
Регистрация: 17.3.2008
Из: Belarus
Пользователь №: 124

Спасибо сказали: 0 раз(а)




Репутация:   0  


Создаю главное окно QMainWindow. Затем устанавливаю центральный виджет QMdiArea. Есть другой класс ClientWindow: QMainWindow.
Добавляю ClientWindow в Mdiarea. Разварачиваю clientwindow максимально. У clientwindow есть кнопка по нажатии которой поверх этого окна должно дабавится Qwidget. Все работает. Но Qwidget тоже разварачивает максимально. Если сварачиваю то сварачиваются 2.

Как сделать чтобы qwidget был размером 200 на 200(некакие ресайзыне не помагают), а clientwindow был развернут максимально?

Код:
#include <QtGui>
#include "mainwindow.h"

MainWindow::MainWindow()
{

    createActions();
    createMenus();
    mdiArea = new QMdiArea();
  //  mdiArea->setViewMode(QMdiArea::TabbedView);
    setCentralWidget(mdiArea);
    setWindowTitle(trUtf8("аорпм"));
    showMaximized();

}


MainWindow::~MainWindow()
{

}


void MainWindow::createActions()
{
    spClient = new QAction(trUtf8("Клиенты"),this);
    connect(spClient,SIGNAL(triggered()),this,SLOT(spClientShow()));

}

void MainWindow::createMenus()
{
    spMenu = menuBar()->addMenu(trUtf8("Справочники"));
    spMenu->addAction(spClient);

}

void MainWindow::spClientShow()
{
    clWindow = new ClientWindow;
    mdiArea->addSubWindow(clWindow);
    connect(clWindow->getAddAction(),SIGNAL(triggered()),this,SLOT(spShShow()));
    clWindow->setWindowTitle(trUtf8("Клиенты"));
    clWindow->showMaximized();

}

void MainWindow::spShShow()
{
    QWidget *wgt = new QWidget();
    mdiArea->addSubWindow(wgt);
    wgt->show();
}


Скриншот:
Прикрепленное изображение


Сообщение отредактировал bynet - 2.11.2010, 12:17
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
bynet
  опции профиля:
сообщение 2.11.2010, 14:10
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 69
Регистрация: 17.3.2008
Из: Belarus
Пользователь №: 124

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(wiz29 @ 2.11.2010, 14:49) *
у окна которое добавляется "поверх", "кто парент виджет"?


QWidget *wgt = new QWidget();
mdiArea->addSubWindow(wgt);
wgt->show();

Вот это окно добавляется поверх

Переделал так
subWindow = new QMdiSubWindow();
QWidget *wgt = new QWidget(mdiArea);
subWindow->setWidget(wgt);
subWindow->setAttribute(Qt::WA_DeleteOnClose);
mdiArea->addSubWindow(subWindow);
subWindow->show();

всеровно при сворачивании или ресайзе происходит для двух окон.

Сообщение отредактировал bynet - 2.11.2010, 14:11
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


7 чел. читают эту тему (гостей: 7, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 1.12.2024, 7:45