Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Изменяемые размеры окна
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
AD
Необходимо сделать диалоговое окошечко, где есть один виджет (элемент типа widget). Не могу добиться того, чтобы окно виджет менял размеры вместе с окном. использую лэйауты, делаю expanding. В старом приложении такие вещи работают, а в этом не меняется размер окна. Что делать? Какой кусок точно будет гарантировать изменение окна? В прошлый раз я этого добился дизайнером, а сейчас то же самое не получается. Объясните, пожалуйста!
Litkevich Yuriy
а диалог где делал? в дизайнере?
если руками, приведи код.
AD
Цитата(Litkevich Yuriy @ 15.4.2008, 13:03) *
а диалог где делал? в дизайнере?
если руками, приведи код.

Диалог в дизайнере делал. Вот виды
Нажмите для просмотра прикрепленного файла

Нажмите для просмотра прикрепленного файла


А вот как должно выглядеть приложение!

Нажмите для просмотра прикрепленного файла

Вот сгенерированный код дизайнером:
/********************************************************************************
** Form generated from reading ui file 'apptest.ui'
**
** Created: Tue 15. Apr 13:00:50 2008
**      by: Qt User Interface Compiler version 4.3.2
**
** WARNING! All changes made in this file will be lost when recompiling ui file!
********************************************************************************/

#ifndef UI_APPTEST_H
#define UI_APPTEST_H

#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QDialog>
#include <QtGui/QHBoxLayout>
#include <QtGui/QWidget>

class Ui_AppTestClass
{
public:
    QWidget *horizontalLayout;
    QHBoxLayout *hboxLayout;
    QWidget *widget;

    void setupUi(QDialog *AppTestClass)
    {
    if (AppTestClass->objectName().isEmpty())
        AppTestClass->setObjectName(QString::fromUtf8("AppTestClass"));
    AppTestClass->resize(727, 614);
    QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
    sizePolicy.setHorizontalStretch(1);
    sizePolicy.setVerticalStretch(1);
    sizePolicy.setHeightForWidth(AppTestClass->sizePolicy().hasHeightForWidth());
    AppTestClass->setSizePolicy(sizePolicy);
    AppTestClass->setMinimumSize(QSize(40, 40));
    horizontalLayout = new QWidget(AppTestClass);
    horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
    horizontalLayout->setGeometry(QRect(10, 10, 711, 591));
    hboxLayout = new QHBoxLayout(horizontalLayout);
    hboxLayout->setSpacing(6);
    hboxLayout->setMargin(11);
    hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
    hboxLayout->setContentsMargins(0, 0, 0, 0);
    widget = new QWidget(horizontalLayout);
    widget->setObjectName(QString::fromUtf8("widget"));
    sizePolicy.setHeightForWidth(widget->sizePolicy().hasHeightForWidth());
    widget->setSizePolicy(sizePolicy);
    widget->setMinimumSize(QSize(40, 40));
    widget->setSizeIncrement(QSize(1, 1));

    hboxLayout->addWidget(widget);


    retranslateUi(AppTestClass);

    QMetaObject::connectSlotsByName(AppTestClass);
    } // setupUi

    void retranslateUi(QDialog *AppTestClass)
    {
    AppTestClass->setWindowTitle(QApplication::translate("AppTestClass", "AppTest", 0, QApplication::UnicodeUTF8));
    Q_UNUSED(AppTestClass);
    } // retranslateUi

};

namespace Ui {
    class AppTestClass: public Ui_AppTestClass {};
} // namespace Ui

#endif // UI_APPTEST_H
Litkevich Yuriy
Ты зря отдельно лэйаут положил,
на формочку кладешь QWidget -> выделяешь формочку -> на панели инструментов щелкаешь нужный лэйаут, или через контекстное меню:
Нажмите для просмотра прикрепленного файла
AD
Цитата(Litkevich Yuriy @ 15.4.2008, 13:25) *
Ты зря отдельно лэйаут положил,
на формочку кладешь QWidget -> выделяешь формочку -> на панели инструментов щелкаешь нужный лэйаут, или через контекстное меню:
Нажмите для просмотра прикрепленного файла

спасибо! :) Помогло! :)
Litkevich Yuriy
просто запомни:
у каждого виджета, когда работешь в дизайнере, один лэйаут есть, так сказать по умолчанию, но он визуально не отображается.
Don
А как сделать, чтоб окно при запуске проги всегда было по центру экрана, при любом разрешении и размерах окна?
Don
В Qt что ди нет средств центровки окон?
Подскажите плиз, как средствами Qt или С++ можно узнать резрешение экрана?
Litkevich Yuriy
Цитата(Don @ 13.5.2008, 18:34) *
Подскажите плиз, как средствами Qt или С++ можно узнать резрешение экрана?

QDesktopWidget::screenGeometry
ну и положение окна тамже ищи, по ссылкам пройдись
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.