crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Изменяемые размеры окна
AD
  опции профиля:
сообщение 15.4.2008, 11:53
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

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




Репутация:   17  


Необходимо сделать диалоговое окошечко, где есть один виджет (элемент типа widget). Не могу добиться того, чтобы окно виджет менял размеры вместе с окном. использую лэйауты, делаю expanding. В старом приложении такие вещи работают, а в этом не меняется размер окна. Что делать? Какой кусок точно будет гарантировать изменение окна? В прошлый раз я этого добился дизайнером, а сейчас то же самое не получается. Объясните, пожалуйста!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.4.2008, 12:03
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


а диалог где делал? в дизайнере?
если руками, приведи код.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 15.4.2008, 12:10
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

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




Репутация:   17  


Цитата(Litkevich Yuriy @ 15.4.2008, 13:03) *
а диалог где делал? в дизайнере?
если руками, приведи код.

Диалог в дизайнере делал. Вот виды
[attachment=65:apptest_1.JPG]

[attachment=66:apptest_2.JPG]


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

[attachment=67:apptest.JPG]

Вот сгенерированный код дизайнером:
/********************************************************************************
** 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
  опции профиля:
сообщение 15.4.2008, 12:25
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Ты зря отдельно лэйаут положил,
на формочку кладешь QWidget -> выделяешь формочку -> на панели инструментов щелкаешь нужный лэйаут, или через контекстное меню:

Прикрепленное изображение
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 15.4.2008, 12:30
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

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




Репутация:   17  


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

Прикрепленное изображение

спасибо! :) Помогло! :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.4.2008, 12:35
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


просто запомни:
у каждого виджета, когда работешь в дизайнере, один лэйаут есть, так сказать по умолчанию, но он визуально не отображается.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Don
  опции профиля:
сообщение 12.5.2008, 19:23
Сообщение #7


Студент
*

Группа: Новичок
Сообщений: 59
Регистрация: 19.3.2008
Пользователь №: 127

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




Репутация:   0  


А как сделать, чтоб окно при запуске проги всегда было по центру экрана, при любом разрешении и размерах окна?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Don
  опции профиля:
сообщение 13.5.2008, 14:34
Сообщение #8


Студент
*

Группа: Новичок
Сообщений: 59
Регистрация: 19.3.2008
Пользователь №: 127

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




Репутация:   0  


В Qt что ди нет средств центровки окон?
Подскажите плиз, как средствами Qt или С++ можно узнать резрешение экрана?

Сообщение отредактировал Don - 13.5.2008, 14:49
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 13.5.2008, 15:45
Сообщение #9


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(Don @ 13.5.2008, 18:34) *
Подскажите плиз, как средствами Qt или С++ можно узнать резрешение экрана?

QDesktopWidget::screenGeometry
ну и положение окна тамже ищи, по ссылкам пройдись
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 28.3.2024, 12:36