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

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

Страниц: 1 ... 3 4 [5] 6   Вниз
  Печать  
Автор Тема: Получаю не правильный размер widget'a и маленький вопрос о include  (Прочитано 38716 раз)
SABROG
Гость
« Ответ #60 : Декабрь 14, 2009, 09:56 »

По умолчанию, QTabWidget::minimumSizeHint() возвращает максимальный размер всех существующих страниц, а не только видимой страницы.

Несмотря на то, что так написано - так не происходит. Возвращает минимальный размер только видимой вкладки, никакие layout()->activate() этому не способствуют.
Записан
spectre71
Гость
« Ответ #61 : Декабрь 14, 2009, 10:05 »

Еще один прикол. Если для такого варианта:

Код
C++ (Qt)
TDialogOptions::TDialogOptions(QWidget *parent, Qt::WFlags flags)
: QDialog(parent, flags)
{
ui.setupUi(this);
   setWindowFlags(windowFlags() | Qt::MSWindowsFixedSizeDialogHint);
 
   adjustSize();
   setMaximumSize(geometry().size());
}

переставить в дизайнере местами закладки, "View/Console" -  первая, и выбрать по-умолчанию "View/Console", то работает корректно.
Вообще фигня какая-то!
Записан
BRE
Гость
« Ответ #62 : Декабрь 14, 2009, 10:07 »

Да, полностью твой проект.
Странно, у меня все нормально.
Записан
spectre71
Гость
« Ответ #63 : Декабрь 14, 2009, 10:12 »

Да, полностью твой проект.
Странно, у меня все нормально.

О..., Оно еще и под разными опреционками по-разному работает!
У меня XP.
Записан
SABROG
Гость
« Ответ #64 : Декабрь 14, 2009, 10:13 »

Я так понимаю задача сводится к такой:
- имеем произвольный размер диалога, который может быть заведомо больше или меньше размера, который бы установил adjustSize() при показе вкладки с самыми большими размерами
- нужно получить эти размеры и установить новый размер всему диалогу
Записан
spectre71
Гость
« Ответ #65 : Декабрь 14, 2009, 10:17 »

Я так понимаю задача сводится к такой:
- имеем произвольный размер диалога, который может быть заведомо больше или меньше размера, который бы установил adjustSize() при показе вкладки с самыми большими размерами
- нужно получить эти размеры и установить новый размер всему диалогу

Можно и так описать.
Записан
BRE
Гость
« Ответ #66 : Декабрь 14, 2009, 10:17 »

О..., Оно еще и под разными опреционками по-разному работает!
У меня XP.
Проверил под XP (брр), там тоже нормально работает.   Непонимающий
Ты точно мой проект используешь в том виде какой он был в архиве?
Записан
SABROG
Гость
« Ответ #67 : Декабрь 14, 2009, 10:18 »

О..., Оно еще и под разными опреционками по-разному работает!
У меня XP.
Проверил под XP (брр), там тоже нормально работает.   Непонимающий
Ты точно мой проект используешь в том виде какой он был в архиве?

Ты adjustSize() закомментировал?
Записан
spectre71
Гость
« Ответ #68 : Декабрь 14, 2009, 10:23 »

О..., Оно еще и под разными опреционками по-разному работает!
У меня XP.
Проверил под XP (брр), там тоже нормально работает.   Непонимающий
Ты точно мой проект используешь в том виде какой он был в архиве?

Абсолютно точно! Приаттачил твой вариант, можешь проверить что он.

===
Qt 4.6.0 - коммерческая версия
Qt Creator 1.3.0
Mingw
Windows XP
« Последнее редактирование: Декабрь 14, 2009, 10:28 от Spectre » Записан
SABROG
Гость
« Ответ #69 : Декабрь 14, 2009, 10:29 »

Наблюдение. Когда показывается вкладка минимальных размеров, то пользователь может менять размеры диалога как вздумается, если переключиться на первую вкладку, а потом снова на вторую, то размер диалога уже нельзя уменьшить до минимального, т.е. включаются ограничители.

При этом, если выбрать текущую вкладку 2 в дизайнере и сделать Preview, то ограничители срабатывают сразу же.
« Последнее редактирование: Декабрь 14, 2009, 10:31 от SABROG » Записан
BRE
Гость
« Ответ #70 : Декабрь 14, 2009, 10:37 »

Абсолютно точно! Приаттачил твой вариант, можешь проверить что он.

===
Qt 4.6.0 - коммерческая версия
Qt Creator 1.3.0
Mingw
Windows XP
Проверил:
Linux Fedora11 - qt-4.5.3-9.fc11.x86_64
Windows XP - SDK Qt-4.6

Все работает.  Непонимающий
Записан
spectre71
Гость
« Ответ #71 : Декабрь 14, 2009, 10:47 »

Проверил:
Linux Fedora11 - qt-4.5.3-9.fc11.x86_64
Windows XP - SDK Qt-4.6

Все работает.  Непонимающий

Что к чему???

Такой финт ушами тоже не помогает

Код
C++ (Qt)
  ui.tabWidget->setCurrentIndex(0);
  adjustSize();
  setMaximumSize(geometry().size());
  ui.tabWidget->setCurrentIndex(1);

И остальные подобные варианты с:
ui.tabWidget->setMinimumSize(ui.tabWidget->minimumSizeHint());
Записан
SABROG
Гость
« Ответ #72 : Декабрь 14, 2009, 10:54 »

BRE, такого поведения нет?

Записан
spectre71
Гость
« Ответ #73 : Декабрь 14, 2009, 10:56 »

Проверил:
Linux Fedora11 - qt-4.5.3-9.fc11.x86_64
Windows XP - SDK Qt-4.6

Все работает.  Непонимающий

выкладываю 2 exe собранные Windows XP - SDK Qt-4.6.
Мой вариант - "dialogtest-my.exe"
Твой вариант - "dialogtest-yours.exe"

Поверь как они работают у тебя.
Записан
spectre71
Гость
« Ответ #74 : Декабрь 14, 2009, 10:58 »

BRE, такого поведения нет?


На твоем проекте - нет. Ресайз же заблокирован:
setWindowFlags(windowFlags() | Qt::MSWindowsFixedSizeDialogHint);
Записан
Страниц: 1 ... 3 4 [5] 6   Вверх
  Печать  
 
Перейти в:  


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