Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Авварон от Октябрь 27, 2011, 09:53



Название: 1 пиксельный сплиттер
Отправлено: Авварон от Октябрь 27, 2011, 09:53
Сабж сделать не проблема, проблема его красиво нарисовать (да, тема о5 о стайлорисовании).
Рисую так:
Код:
void MiniSplitterHandle::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    painter.fillRect(event->rect(), Qt::darkGray);
}
На маке все выглядит хорошо, а на линуксе с охуген стайлом - нет.
Дефолтный сплиттер/дефолтный фон виджетов тоже не подходят, тк плохо выглядят на маке (зато на линуксе хорошо)


Название: Re: 1 пиксельный сплиттер
Отправлено: GreatSnake от Октябрь 27, 2011, 10:32
Имхо, с хендлом всё нормально - просто рамки левой и правой формы в линуксовой теме толще.


Название: Re: 1 пиксельный сплиттер
Отправлено: Авварон от Октябрь 27, 2011, 10:35
GreatSnake
Я понимаю, и хотел бы это учитывать - например хотя бы рисовать полосу не сверху донизу, а отступя. Но я не нашел метрики, к-ая за этот отступ отвечает:(


Название: Re: 1 пиксельный сплиттер
Отправлено: GreatSnake от Октябрь 27, 2011, 10:47
GreatSnake
Я понимаю, и хотел бы это учитывать - например хотя бы рисовать полосу не сверху донизу, а отступя. Но я не нашел метрики, к-ая за этот отступ отвечает:(
Не понял про какой отступ идёт речь.


Название: Re: 1 пиксельный сплиттер
Отправлено: Авварон от Октябрь 27, 2011, 10:48
рамки форм


Название: Re: 1 пиксельный сплиттер
Отправлено: GreatSnake от Октябрь 27, 2011, 10:52
См. CSS Box Model (http://www.doc.crossplatform.ru/qt/4.7.x/stylesheet-customizing.html#box-model).


Название: Re: 1 пиксельный сплиттер
Отправлено: Авварон от Октябрь 27, 2011, 14:37
я не спрашивал как мне эти значения задать. я спрашивал, как их получить. ни 1 из маржинов стиля не подходит.


Название: Re: 1 пиксельный сплиттер
Отправлено: GreatSnake от Октябрь 27, 2011, 14:46
QStyle::SE_ShapedFrameContents
либо
QFrame::frameWidth()


Название: Re: 1 пиксельный сплиттер
Отправлено: panAlexey от Октябрь 27, 2011, 21:37
лучше рисовать трехпиксельный.
края - даркгрей, центр лайтгрей и 3 точки посередине иначе нефига не понятно сплитер это или чЁ..


Название: Re: 1 пиксельный сплиттер
Отправлено: Авварон от Октябрь 27, 2011, 23:04
GreatSnake
SE_ShapedFrameContents - это же не пиксель метрика; то естья могу отрисовать фрейм сам, но не высчитать отступ. А вот фрейм можно попробовать (тк сплиттер от него наследуется, мб и прокатит)

panAlexey
наличие курсора тягального явно намекает.


Название: Re: 1 пиксельный сплиттер
Отправлено: Авварон от Октябрь 27, 2011, 23:11
Кстати как вариант устроит 0-пиксельный сплиттер, если это вообще возможно:)


Название: Re: 1 пиксельный сплиттер
Отправлено: panAlexey от Октябрь 28, 2011, 00:53
panAlexey
наличие курсора тягального явно намекает.
молодец, готовь юзверю польше таких скрытых возможностей, на которых напороться можно лишь случайно и он тебя возлюбит по достоинству.
Кто тебя интерфейс учил делать?
Негры на пальцах в темной комнате?


Название: Re: 1 пиксельный сплиттер
Отправлено: Авварон от Октябрь 28, 2011, 08:23
panAlexey
тебе сделать скриншотов маковских сплиттеров?
креатор можешь открыть, для разнообразия

мне нужно эмулировать по сути док, у к-го нет хэндла, ога?


Название: Re: 1 пиксельный сплиттер
Отправлено: Авварон от Октябрь 28, 2011, 14:31
В общем пропатчил Qt - теперь сплиттеру можно задавать хэндл 0го размера, надеюсь мерж реквест примут. Выглядит как-то так - http://mtgs.clan.su/andromeda/minisplitter.png
Виджеты расположены по горизонтали в сплиттере, 4пикселя draggable полоска между ними.