Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [QT4.4.2] Как настроить размер "бегунка" QSlider? QSlider::handle:horizontal не работает 
V
    Опции темы
borisbn
Дата 6.2.2010, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



У меня на форме лежит горизонтальный QSlider. Форма довольно широкая, а значений положений "бегунка" silder'а всего 3-5.
Хочу изменить размер "бегунка".
Пробовал создавать css-файл типа:
Код

QSlider::handle:horizontal {
     width: 60px;
}

и запускать программу с ключом -stylesheet=styles.css
К сожалению, не работает.
Если у кого-нибудь была такая проблема, и он её решил, просьба помочь.
Спасибо.

Это сообщение отредактировал(а) borisbn - 6.2.2010, 17:32


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
JackYF
Дата 8.2.2010, 01:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 7
Всего: 162



Есть мнение, что тебе может помочь метод слайдера setTickInterval.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
borisbn
Дата 8.2.2010, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



JackYF, не, не помогает. setTickInterval - это интервал между tick'ами (засечками), причем не в пикселах, а в значениях slider'а. 
Мне же надо:
Было (как сейчас)
http://imagehost.spark-media.ru/i/43316C6A...28751762EC4.jpg
Стало (как хотелось бы, но не получается)
http://imagehost.spark-media.ru/i/C02EDA8A...DD667EA1658.jpg 


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
W4FhLF
Дата 8.2.2010, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 4
Всего: 121



Код

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    
    QSlider s;
    s.setOrientation(Qt::Horizontal);
    s.setMinimum(1);
    s.setMaximum(5);

    s.setStyleSheet("QSlider::groove:horizontal {"
                        "border: 1px solid #999999;"
                        "height: 8px;"
                        "background: palette(midlight);"
                        "margin: 8px 0;"
                    "}"

                        "QSlider::handle:horizontal {"
                            "background: palette(window);"
                            "border: 1px solid #999999;"
                            "width: 30px;"
                            "margin: -8px 0;"
                            "border-radius: 3px;"
                    "}");
    
    s.resize(640, 100);
    s.show();
    return a.exec();
}


Добавлено через 9 минут и 39 секунд
user posted image


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
borisbn
Дата 9.2.2010, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



W4FhLF, Спасибо, заработало. Оказывается при настройке только ::handle стиль вообще не применяется, необходимо обязательно настраивать (всё равно как) ::grove.
Однако, есть трабл. Пропали "засечки" (ticks), что при малом количестве позиций крайне неудобно.
Вот как я делаю
Код

    m_slider = new QSlider( Qt::Horizontal );
    m_slider->setMinimum( 1 );
    m_slider->setMaximum( 5 );
    m_slider->setTickInterval( 1 );
    m_slider->setTickPosition( QSlider::TicksBothSides );
    m_slider->setPageStep( 1 );
    m_slider->setStyleSheet(
        "QSlider::groove:horizontal {"
        "border: 1px none;"
        "height: 8px;"
        "background: palette(midlight);"
        "margin: 8px 0;"
        "}"

        "QSlider::handle:horizontal {"
        "background: palette(window);"
        "border: 1px solid #999999;"
        "width: 30px;"
        "margin: -8px 0;"
        "border-radius: 3px;"
        "}");    
// ну и на всякий случай
    m_slider->setTickInterval( 1 );
    m_slider->setTickPosition( QSlider::TicksBothSides );

получилось в точности как у Вас, но без tick'ов :(

Это сообщение отредактировал(а) borisbn - 9.2.2010, 10:28


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0439 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.