QScrollView без полос прокрутки

Я пытаюсь сделать QScrollView с около 100 различных меток и кнопок. Но после их добавления полосы прокрутки не появляются.

Вот пример кода, который я написал:

self.btn = {}
self.scroll = QScrollView(self)
self.scroll.setGeometry(QRect(0,0,300,300))
self.scroll.enableClipper(True)
vp = self.scroll.viewport()

for i in range(0,100):
  self.btn[i] = QPushButton(vp)

for i in range(0,100):
  self.scroll.addChild(self.btn[i],1,50*i)

self.scroll.setVScrollBarMode(QScrollView.AlwaysOn)заставить полосу прокрутки появляться, но не работать.

Кнопки добавляются в QScrollView, но я не могу прокрутить вниз, чтобы увидеть их все, что я делаю не так? Я использую QT3.

2 ответа

Решение

Вы не добавляете все свои маленькие предметы в скроллвью. Вы должны вставить один большой контейнер (например, производный класс QFrame) в представление прокрутки, которое содержит все ваши меньшие виджеты.

На самом деле вам просто нужно дать прокрутку просмотра макета и добавить свои виджеты к этому. Добавление их как подвиджетов одного большого виджета в скроллвью сделает это за вас, но это сложнее.

Другие вопросы по тегам