Russian Qt Forum
Октябрь 01, 2024, 20:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Автоматический размер виджета вне компоновщика  (Прочитано 4386 раз)
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« : Декабрь 02, 2013, 13:20 »

Внутри главного окна нужно отобразить отдельный виджет.
Код:
MyWidget::MyWidget(QWidget *parent) :
    QWidget(parent, Qt::FramelessWindowHint) {
    QBoxLayout *layout = new QVBoxLayout(this);

    labels.resize(L_COUNT);
    for(int i=0; i<L_COUNT; ++i) {
        layout->addWidget(new QLabel(lHeader[i]));
        layout->addWidget(labels[i] = new QLabel);
    }
setBaseSize(200,400);
}

Если parent=0, в отдельном окне показывается нормальный по размеру виджет, если parent=mainWindow то размер окна (100,30). Размер изменить можно, но можно ли чтобы он автоматически создавался?
Записан
Majestio
Гость
« Ответ #1 : Декабрь 02, 2013, 13:27 »

Не совсем понятно: нужно фиксированный размер, либо подогнанный под родителя?
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #2 : Декабрь 02, 2013, 14:31 »

Я ее ручками размещаю на форме move(x,y). Нужен размер подогнанный под содержимое самого виджета.
Сделал пока так
myWidget->move(x,y);
myWidget->resize(myWidget->sizeHint());
« Последнее редактирование: Декабрь 02, 2013, 14:34 от deMax » Записан
Majestio
Гость
« Ответ #3 : Декабрь 02, 2013, 14:39 »

Я ее ручками размещаю на форме move(x,y). Нужен размер подогнанный под содержимое самого виджета.
Сделал пока так
myWidget->move(x,y);
myWidget->resize(myWidget->sizeHint());

Вообще-то для этого компоновщики и придуманы Улыбающийся

1) Если размещаешь внутри другого виджета, то:

Код:
...
QVBoxLayout *L = new QVBoxLayout();
L->addWidget(твой виджет)
setLayout(L)
...

2) Если размещаешь внутри QMainWindow, то:

Код:
...
setCentralWidget(твой виджет)
...

В обоих случаях виджет будет растягиваться по "родительскому".
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #4 : Декабрь 02, 2013, 14:56 »

Majestio, не то.
у меня уже есть компоновщик и основная форма уже скомпонована. Этот виджет рисуется поверх виджета с opengl(перекрывает маленькую часть виджета), он не входит в компоновку формы, но авторазмер ему сделать хочется.
Записан
Majestio
Гость
« Ответ #5 : Декабрь 02, 2013, 15:16 »

Majestio, не то.
у меня уже есть компоновщик и основная форма уже скомпонована. Этот виджет рисуется поверх виджета с opengl(перекрывает маленькую часть виджета), он не входит в компоновку формы, но авторазмер ему сделать хочется.

Кинь скриншотик, чтобы представлять точно о чем речь.
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #6 : Декабрь 03, 2013, 07:48 »

Скриншот не могу скинуть. Вверху есть панели инструментов, внизу панель инструментов, в центре некое изображение с объектами(если пользователь выбирает объект, справа показывается виджет с информацией по выбранному объекту. Виджет с информацией может пропадать, не должен быть отдельным окном.
Интересно почему не срабатывает авторазмер.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.223 секунд. Запросов: 23.