Название: [Решено]Плавный ресайз в QScrollArea Отправлено: RoulanD от Апрель 17, 2011, 07:35 Здравствуйте. Проблема следующая:
У меня есть QScrollArea в нём компоновка горизонтальная, в компоновке 3 кнопки и horizontalSpacer на MinimumExpanding. Нужно следующее: при изменении width например первой кнопки, все остальные виджеты в компоновке сдвигались. То есть если первая кнопка увеличилась в ширине на 20 пиксилей, например, то оставшиеся 2 кнопки и horizontalSpacer сдвинулись на 20 пикселей по оси Х. Название: Re: Плавный ресайз в QScrollArea Отправлено: blood_shadow от Апрель 17, 2011, 10:44 Здравствуйте. Проблема следующая: поставь горизонтальную политику размера кнопок и спайсера на FixedУ меня есть QScrollArea в нём компоновка горизонтальная, в компоновке 3 кнопки и horizontalSpacer на MinimumExpanding. Нужно следующее: при изменении width например первой кнопки, все остальные виджеты в компоновке сдвигались. То есть если первая кнопка увеличилась в ширине на 20 пиксилей, например, то оставшиеся 2 кнопки и horizontalSpacer сдвинулись на 20 пикселей по оси Х. Название: Re: Плавный ресайз в QScrollArea Отправлено: RoulanD от Апрель 17, 2011, 11:23 ставил.
И прошу, если кто то что то советует то попробуйте сначала это сами. Название: Re: Плавный ресайз в QScrollArea Отправлено: blood_shadow от Апрель 17, 2011, 14:03 ставил. тогда давай форму, за тебя тут никто не будет задачи разбирать и решатьИ прошу, если кто то что то советует то попробуйте сначала это сами. Название: Re: Плавный ресайз в QScrollArea Отправлено: RoulanD от Апрель 17, 2011, 16:54 1 - форма
2 - изначально 3 - после увеличения размера 1 кнопки она заползает на остальные, несмотря на компоновку. (компоновку сделал внутри scrollArea) Название: Re: Плавный ресайз в QScrollArea Отправлено: blood_shadow от Апрель 17, 2011, 17:11 вот так?:
(http://i.pixs.ru/storage/2/7/1/22PNG_7578385_2048271.png) Название: Re: Плавный ресайз в QScrollArea Отправлено: RoulanD от Апрель 17, 2011, 19:55 ну да вот они должны так сдвигаться
Название: Re: Плавный ресайз в QScrollArea Отправлено: blood_shadow от Апрель 17, 2011, 20:00 ну да вот они должны так сдвигаться кнопки горизонтальная политика все - Minimum, распорка - Expanding и все это скомпоновано по горизонталиНазвание: Re: Плавный ресайз в QScrollArea Отправлено: RoulanD от Апрель 17, 2011, 20:02 при изменении размера она всё равно накладывается на другую кнопку.
Название: Re: Плавный ресайз в QScrollArea Отправлено: blood_shadow от Апрель 17, 2011, 20:09 при изменении размера она всё равно накладывается на другую кнопку. я предполагаю что у распорки стоит минимальный размер меньше которого она не можетстать, если же нет прикрепи файл *.ui сюда я посмотрю Название: Re: Плавный ресайз в QScrollArea Отправлено: RoulanD от Апрель 17, 2011, 20:11 у спейсера стоит размер 1х1
Название: Re: Плавный ресайз в QScrollArea Отправлено: blood_shadow от Апрель 17, 2011, 22:01 у спейсера стоит размер 1х1 минимальный размер твоей кнопки устанавливал на +20 вроде работает, остальные кнопкипоставил на фиксед, спейсер на 40*20 Название: Re: Плавный ресайз в QScrollArea Отправлено: RoulanD от Апрель 18, 2011, 04:22 Ты вроде не понял. Я, например, на 1 кнопку делаю сигнал кликт.
Код И при запуске программы, когда я увеличиваю размер кнопки этим слотом, она у меня на другие виджеты налазит. Мне вот от этого нужно избавиться. Название: Re: Плавный ресайз в QScrollArea Отправлено: blood_shadow от Апрель 18, 2011, 10:07 Ты вроде не понял. Я, например, на 1 кнопку делаю сигнал кликт. неправильно, ты делаешьКод И при запуске программы, когда я увеличиваю размер кнопки этим слотом, она у меня на другие виджеты налазит. Мне вот от этого нужно избавиться. Код
Название: Re: Плавный ресайз в QScrollArea Отправлено: RoulanD от Апрель 18, 2011, 11:27 Ну дело не в этом, всё равно при изменении размера виджеты справа не сдвигаются, а кнопка накладывается на них.
Название: Re: Плавный ресайз в QScrollArea Отправлено: blood_shadow от Апрель 18, 2011, 12:53 Ну дело не в этом, всё равно при изменении размера виджеты справа не сдвигаются, а кнопка накладывается на них. давай тогда проект, а так я ума не приложу что у тебя там происходитНазвание: Re: Плавный ресайз в QScrollArea Отправлено: RoulanD от Апрель 18, 2011, 13:19 аррр =) Время нету, сейчас убегаю, мне нужно чтоб когда я кликаю на кнопку первую, её размер увеличивался, и не накладывался на остальные виджеты в компоновке, а двигал их.
Название: Re: Плавный ресайз в QScrollArea Отправлено: Авварон от Апрель 18, 2011, 19:50 Ваша задача логически неверно построена. Если вы используете компоновщики, то за размер виджета отвечает компоновщик, а не виджет. Есть способы/ряд случаев когда можно безопасно менять размер виджета в лэйауте, но в большинстве своём это шаманизм и неверно по сути.
Название: Re: Плавный ресайз в QScrollArea Отправлено: RoulanD от Апрель 18, 2011, 20:14 тем не менее проблема есть и её нужно решить =)
Был вариант отслеживать координаты по Х первой кнопки + её ширину и сравнивать с координатами по Х следующей кнопки, если больше до сдвигать все виджеты справа на столько же на сколько увеличилась первая кнопка =) (ужасно на словах что то понять=)) Но она не прижилась =) Название: Re: Плавный ресайз в QScrollArea Отправлено: RoulanD от Апрель 19, 2011, 19:19 Проблема решена. Всем спасибо.
|