Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Qt] Динамически изменяемый размер диалога. 
:(
    Опции темы
Elfet
Дата 9.12.2009, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Всем привет!

Расскажите пожалуйста, как сделать диалог динамически изменяемого размера? 

Мне нужно сделать диалог с вертикальным layout-ом и динамически добавлять в него виджеты, при этом я хочу что бы размер диалога сам бы менялся.

Как такое можно реализовать? 

Заранее спасибо!


--------------------
PM MAIL WWW Skype   Вверх
chaos
Дата 9.12.2009, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 5
Всего: 44



пример черкнуть не могу - собирается QT 4.6 как раз

но алгоритм набросать могу:

1. по какому-то событию создаем виджет
2. определяем его размер(height 
Цитата(Elfet @  9.12.2009,  11:44 Найти цитируемый пост)
с вертикальным layout-ом
)
3. увеличиваем(тупо mainWidget.setHeigth(mainWidget->heigth() + newWidget->heigth()) или заюзать Animation API) размер(height) родителя на высоту нового виджета
4. добавляем новый виджет


как-то так

Это сообщение отредактировал(а) chaos - 9.12.2009, 15:07
PM WWW   Вверх
SABROG
Дата 9.12.2009, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Очень похоже на эту тему.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
chaos
Дата 9.12.2009, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 5
Всего: 44



SABROG, ага!
Только например в данном случае ничего даже делать не придется:
1. создаем форму на базе QWidget. кидаем на нее кнопку, вертикальный спейсер и устанавливаем для формы вертикальный лайаут
2. на кнопку вешаем слот
Код

ui->verticalLayout->addWidget(new QPushButton(this));


вот и все

ЗЫ форму сделать в дизайнере минимально допустимых размеров smile

PM WWW   Вверх
Elfet
Дата 10.12.2009, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Что-то я не очень понял как это сделать? Если ничего делать не надо и ничего не работает? 

Как такое сделать на QDialog?

Добавлено через 4 минуты и 56 секунд
Код

#ifndef ZONECONNECT_H
#define ZONECONNECT_H

#include <QtGui>
#include <QDialog>

#include <vector>
#include <math.h>
#include <smartflowlib.h>


namespace Ui
{
    class ZoneConnect;
}

class ZoneConnect : public QDialog
{
public:
    ZoneConnect(QWidget * parent = 0);
private:
    Ui::ZoneConnect *ui;

};

#endif // ZONECONNECT_H



Код

#include "zoneconnect.h"
#include "ui_zoneconnect.h"

ZoneConnect::ZoneConnect(QWidget * parent)
        : QDialog(parent), ui(new Ui::ZoneConnect)
{
    ui->setupUi(this);
    setLayout(ui->verticalLayout);
}


Добавлено через 10 минут и 7 секунд
Ааа , не, всё заработало! Всем спасибо!

Только непойму как при этом запретить пользователю менять размер окна?


--------------------
PM MAIL WWW Skype   Вверх
chaos
Дата 10.12.2009, 08:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 5
Всего: 44



Цитата(Elfet @  9.12.2009,  21:42 Найти цитируемый пост)
Только непойму как при этом запретить пользователю менять размер окна? 

тут у мну пробел в знаниях. я обычно когда хочу запретить изменение размеров, делаю следующее:
в дизайнере minimumSize & maximumSize делаю одинаковыми

Это сообщение отредактировал(а) chaos - 10.12.2009, 08:07
PM WWW   Вверх
SABROG
Дата 10.12.2009, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Такие методы есть:
QLayout::setSizeConstraint(QLayout::SetFixedSize);
void QWidget::setFixedSize ( const QSize & s )


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
chaos
Дата 10.12.2009, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 5
Всего: 44



Цитата(SABROG @ 10.12.2009,  07:28)
Такие методы есть:
QLayout::setSizeConstraint(QLayout::SetFixedSize);
void QWidget::setFixedSize ( const QSize & s )

угу. сенкс. возьму на заметку
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0464 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.