2012-04-25 2 views
1

В MacOS 10.6 дескриптор по умолчанию QSlider - это шар, если у QSlider есть отметки, тогда дескриптор меняет свое появление (одна форма стрелки), я хочу этого типа ручки, но мне не нравятся тики Qt. Итак, я хотел бы сохранить эту картину дескриптора как ресурс qrc и использовать таблицу стилей, чтобы настроить внешний вид qslider. Это единственный способ понять.Как использовать таблицу стилей для настройки дескриптора QSlider на MacOS

Может ли кто-нибудь сказать мне, как написать таблицу стилей, я имею в виду, что все сохраняет то же самое, но меняется только ручка.

BTW, есть другой вопрос. Для стандартного QSlider в MacOS ручка не может достигать самого левого и самого правого положения канавки, как использовать таблицу стилей для ее настройки?

ответ

2

Добавьте изображение дескриптора, который вы хотите в свой ресурс (.qrc). Для Photoshop вам будет очень легко обращаться с дескриптором (или использовать какую-то другую программу). Затем попробуйте добавить это в коде

setStyleSheet("QSlider::handle {image: url(:/resources/image.png);}"); 

Вам может понадобиться немного поэкспериментировать с отступов и полей, чтобы получить ползунок расположен так, как вы хотите.

+0

После того, как я установил изображение дескриптора, я обнаружил, что другие свойства не могут вступить в силу, например «margin», задав маркер дескриптора, дескриптор которого может расширяться за пределами паз или оставить смещение. – Royt

+0

@ Royt Попробуй заполнить, я знаю, что работает. – Anthony

+0

Я пробовал Windows, QSlider :: handle: horizontal {background-image: url (:/images/handle.png); } может работать, а свойство «image» не может. но при использовании свойства «background-image» высота и ширина не могут работать, если изображение мало, оно будет нарисовано много раз. И я попробовал padding-left и padding-right, они не имеют никакого эффекта. – Royt

2

Вы должны изменить весь QSlider для управления такими вещами. В противном случае он вернется в стиль по умолчанию Mac OS X. Таким образом, вы должны изменить границу и фон QSlider и обработать себя. Посмотрите на это example

+0

Спасибо, теперь я знаю, что многие атрибуты должны меняться вместе, чтобы сделать индивидуальный вид вступающим в силу. Но как написать таблицу стилей, чтобы сделать qslider похожим на собственный слайдер mac? – Royt

+0

Ну, я бы использовал некоторые графики для этого. Но почему вы хотите изменить собственное поведение слайдера в Mac OS X? –

+0

Потому что я хочу нарисовать тики для слайдера самостоятельно, но не использовать dufault ticks Qt. Поэтому я должен знать начальные точки и конечные точки дескриптора. Но на встроенном слайдере Mac дескриптор не может попасть в самые левые и самые правильные места, есть некоторый смещение, так как qt использует Mac API для рисования qslider в стиле Mac, поэтому я не могу получить детали. Я хочу настроить его по таблице стилей и сделать его похожим на собственный элемент управления. – Royt