Название: Хочу сделать свое свойство Alignment Отправлено: dr_Begemot от Июль 16, 2009, 11:06 Хочу сделать свое свойство Alignment, но плодить enum-ы не хочется, а ъхочется заюзать Qt::Alignment вопрос в том как с ним работать.
Задача в следующем, есть некоторая точка QPoint pos, объект прямоугольник с известными height и width может располагаться в любых позициях от этой точки, как то: центр прямоугольника совпадает с pos, центр по ox сопадает с pos, а по oy находится слева ну итд. Описываю сеттеры и геттеры переменной Qt::Alignment m_alignment: Код: void setAlignment(Qt::Alignment alignment){ теперь в ф-ии drawRect() надо нарисовать прямоугольник: Код: void drawRect(int height, int width){ Тут же есть следующие позиции: По горизонтали - центр, слева, справа и по вертикали, центр, снизу, сверху. Вопрос собственно в том, как из m_alignment вытащить данные сведения и как правильно устанавливать значения при вызове setAlignment? Название: Re: Хочу сделать свое свойство Alignment Отправлено: break от Июль 16, 2009, 13:14 в упор не пойму в чем ворос - вот в методе paint и проверять
Код
....... } в смысле в вашем DrawRect или в вашем собственном setAlignment Цитировать break забыл расставить break-и Да действительно забыл... :)Название: Re: Хочу сделать свое свойство Alignment Отправлено: ритт от Июль 16, 2009, 15:48 break забыл расставить break-и :)
Название: Re: Хочу сделать свое свойство Alignment Отправлено: BRE от Июль 16, 2009, 16:36 Так можно будет задавать выравнивания только по одной оси.
Если нужно указывать выравнивание по двум осям (AlignLeft | AlignTop), то нужно будет m_alignment определить как int и разбирать значения по-битно. Название: Re: Хочу сделать свое свойство Alignment Отправлено: dr_Begemot от Июль 16, 2009, 17:14 Так можно будет задавать выравнивания только по одной оси. Если нужно указывать выравнивание по двум осям (AlignLeft | AlignTop), то нужно будет m_alignment определить как int и разбирать значения по-битно. А можно примерчик? :) спасибо) Название: Re: Хочу сделать свое свойство Alignment Отправлено: f-r-o-s-t от Июль 16, 2009, 17:37 Код
Название: Re: Хочу сделать свое свойство Alignment Отправлено: BRE от Июль 16, 2009, 17:42 А можно примерчик? :) спасибо) Код
Но нужно помнить, что если клиент укажет по ошибке два значения выравнивания (AlignLeft|AlignRight), то не отработает не один. Или можно выделять значение бита для каждого значения и проверять их: Код
Название: Re: Хочу сделать свое свойство Alignment Отправлено: dr_Begemot от Июль 17, 2009, 09:47 А можно примерчик? :) спасибо) Код
Но нужно помнить, что если клиент укажет по ошибке два значения выравнивания (AlignLeft|AlignRight), то не отработает не один. Или можно выделять значение бита для каждого значения и проверять их: Код
Можно поподробней про проверку... не совсем понял. Если пользователь введет (AlignLeft|AlignRight|AlignTop), то что будет в hAlign, а что в vAlign? upd: В vAlign я так понимаю будет AlignTop Название: Re: Хочу сделать свое свойство Alignment Отправлено: ритт от Июль 17, 2009, 10:12 тема к Qt не относится. учи азы.
|