Автор Гілка: Qt4 QlistView  (Прочитано 2068 раз)

Відсутній nik

  • Новачок
  • *
  • дописів: 13
  • Карма: +0/-0
Qt4 QlistView
« : 2009-08-21 16:33:34 »
У цього віджета є два віджет  QScrollBar один вертикальний другий горизонтальний
і мене потрібно вертикальний збільшити
От що я роблю:
listView->verticalScrollBar()->setSizeIncrement(50,160);
але полоса прокрутки не збільшується.
Як зробити щоб полса покрутки збільшувалась ?

Відсутній Markus

  • Дописувач
  • **
  • дописів: 79
  • Карма: +0/-0
  • Програматор
Re: Qt4 QlistView
« Відповідей #1 : 2009-08-22 01:40:34 »
У цього віджета є два віджет  QScrollBar один вертикальний другий горизонтальний
і мене потрібно вертикальний збільшити
От що я роблю:
listView->verticalScrollBar()->setSizeIncrement(50,160);
але полоса прокрутки не збільшується.
Як зробити щоб полса покрутки збільшувалась ?
Що саме Ви хочете збільшити? Весь scrollbar із кнопками вверх вниз, чи лише повзунок.?
Перший варіант вирішується методами наслідуваними із QWidget - setGeometry, resize і тому подібними. Якщо ж сам повзунок потрібно змінити тоді складніше, наскільки мені відомо стандартний скролбар недозволяє міняти розмір повзунка тому Вам потрібно - написати власний клас Скролбар переоприділити paintevent i малювати повзунок додавши метод який би дозволяв міняти розмір (сам Скролбар наслідується QAbstractSlider).
І ще один варіант - якщо у Вашій програмі скролбар має бути постійно заданого Вами розміру тоді скористайтесь стилями: або клас QStyle або файли стилів qss наприклад задання розміру (висоти) для повзунка усіх вертикальних скролбарів у програмі за допомого файлів стилів qss:
QScrollBar::handle:vertical {
      min-height: 20px;
  }
Чи потрібні Україні програмісти, які не знають англійської мови?

Відсутній Markus

  • Дописувач
  • **
  • дописів: 79
  • Карма: +0/-0
  • Програматор
Re: Qt4 QlistView
« Відповідей #2 : 2009-08-24 18:07:43 »
Якщо ж хочете щоб лише один скролбар був заданого розміру а інші були довільного тоді в коді слід дописати:
listView->verticalScrollBar()->setProperty("SizeStyle","original");
Опис стилю тоді такий:
QScrollBar::handle:vertical[SizeStyle="original"]
{
      min-height: 20px;
}
Чи потрібні Україні програмісти, які не знають англійської мови?