Как сделать прокрутку QToolBar PyQt5?
Пытаюсь создать вкладки как у браузеров.
Как при большом количестве виджетов на QToolBar сделать их прокрутку с помощью стрелочек: влево и вправо? \
Или лучше использовать другой виджет вместо QToolBar для таких целей?
from PyQt5.Qt import *
import sys
class Window(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent)
self.tool = QToolBar(self)
for i in range(100):
button = QPushButton()
self.tool.addWidget(button)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
Ответы (2 шт):
Автор решения: Bitchdragon
→ Ссылка
Уже разобрался. Если кому понадобится, то можно сделать так:
from PyQt5.Qt import *
import sys
class Window(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent)
self.i = 0
self.tool = QToolBar()
self.hbox = QHBoxLayout()
self.bb = QScrollArea()
self.setLayout(self.hbox)
for i in range(100):
button = QPushButton()
self.tool.addWidget(button)
self.bb.setWidget(self.tool)
self.hbox.addWidget(self.bb)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
Автор решения: S. Nick
→ Ссылка
Я бы предложил следующее:
from PyQt5.Qt import *
class MainWindow(QMainWindow): # !!! QMainWindow
def __init__(self):
super().__init__()
self.tabwidget = QTabWidget()
self.setCentralWidget(self.tabwidget)
for i in range(100):
self.tabwidget.addTab(QWidget(), "tab-{}".format(i))
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())
