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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: виджет по центру окна(главного) и др подробности для окон  (Прочитано 9200 раз)
studentenok
Гость
« : Декабрь 02, 2007, 22:32 »

подскажите, стартёр я  Обеспокоенный
есть главное окно порождённое  от своего class Configurator : public QMainWindow

1. как указать при запуске размещаться по центру экрана
2. как другим  виджетам(диалогам) вызываемым "поверх" главного окна сказать не выходить за рамки этого главного окна
3. как отрисовать картинку в каких-либо координатах главного окна (чет не выходит )?

Записан
ритт
Гость
« Ответ #1 : Декабрь 03, 2007, 03:41 »

1. move((QApplication::desktop()->width() - width()) / 2, (QApplication::desktop()->height() - height()) / 2);
2. ознакомиться с моделированием SDI/MDI. спросить ассистант. опционально, заюзать qmdilib
3. поскольку я, теряясь в догадках, не знаю что подразумевается конкретно: высчитать координаты и рисовать на главном окне
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #2 : Декабрь 03, 2007, 04:21 »

3. Если нужно отобразить картинку на главном окне можно разместить на нем QLabel и при помощи
setPixmap установить картинку. Другой вариант - отрисовать картинку. Переопределяем paintEvent виджета и в нем рисуен картинку (см. в QPainter - drawPixmap, drawImage, drawPicture).

Уточните что нужно, и тогда точно вам подскажут что делать Подмигивающий
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Barmaglodd
Гость
« Ответ #3 : Декабрь 03, 2007, 09:47 »

1. move((QApplication::desktop()->width() - width()) / 2, (QApplication::desktop()->height() - height()) / 2);
А вот где это вызывать?
Есть конструктор формы, в нем динамически добавляются виджеты, потом делаю layout()->setSizeConstraint(QLayout::SetFixedSize), и, как написано выше, двигаю окно. Но width() и height() возвращают какие-то левые значения(видимо,размеры по-умолчанию или заданные в дизайнере), не то что получилось в результате layout()->setSizeConstraint(QLayout::SetFixedSize).
Для окон с неизменяемым в рантайме размером все нормально.
qApp->sendPostedEvents() и qApp->processEvents() не помогают.
« Последнее редактирование: Декабрь 03, 2007, 10:21 от Barmaglodd » Записан
Alex03
Гость
« Ответ #4 : Декабрь 03, 2007, 10:00 »

Если у Вас X11 то может вот тут ответ/объяснения найдёте:
http://doc.trolltech.com/4.3/geometry.html
Записан
Barmaglodd
Гость
« Ответ #5 : Декабрь 03, 2007, 10:20 »

Нет, у меня винда и Qt 4.2.3
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #6 : Декабрь 03, 2007, 13:49 »

А вот где это вызывать?

Споймать или перегрузить showEvent и там вызвать
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Barmaglodd
Гость
« Ответ #7 : Декабрь 04, 2007, 10:39 »

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


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