Pyside2 добавить тулбары в табы
В приложении есть табы.
Как на каждый таб добавить тулбары?
app.py
from UI_test import Ui_Form
from PySide2 import QtWidgets, QtGui, QtCore
import qdarkgraystyle
import sys
class MyWindow(QtWidgets.QWidget):
def __init__(self, parent = None):
QtWidgets.QWidget.__init__(self, parent)
self.ui = Ui_Form()
self.ui.setupUi(self)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
app.setStyleSheet(qdarkgraystyle.load_stylesheet())
app.setStyle('Windows')
window.show()
sys.exit(app.exec_())
UI_test.py
from PySide2 import QtCore, QtGui, QtWidgets
from PySide2.QtCore import Qt,QPointF
from PySide2.QtCharts import QtCharts
class Ui_Form(object):
def setupUi(self, Form):
self.tabWidget = QtWidgets.QTabWidget()
self.tabWidget.setLayoutDirection(QtCore.Qt.LeftToRight)
self.tabWidget.setMinimumSize(1900, 920)
self.tabWidget.setAutoFillBackground(True)
self.tabWidget.setObjectName("tabWidget")
self.tab1 = QtWidgets.QWidget()
self.tab1.setObjectName("tab1")
self.tabWidget.addTab(self.tab1, "tab1")
self.tab2 = QtWidgets.QWidget()
self.tab2.setObjectName("tab2")
self.tabWidget.addTab(self.tab2, "tab2")
self.grid_main = QtWidgets.QGridLayout(Form)
self.grid_main.addWidget(self.tabWidget)
Form.setLayout(self.grid_main)
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Как вариант
import sys
#import qdarkgraystyle
'''
from PySide2 import QtCore, QtGui, QtWidgets
from PySide2.QtCore import Qt,QPointF
from PySide2.QtCharts import QtCharts
'''
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import *
# from UI_test import Ui_Form
class Ui_Form(object):
def setupUi(self, Form):
self.tabWidget = QtWidgets.QTabWidget()
self.tabWidget.setLayoutDirection(QtCore.Qt.LeftToRight)
self.tabWidget.setMinimumSize(600, 420)
self.tabWidget.setAutoFillBackground(True)
self.tabWidget.setObjectName("tabWidget")
self.tab1 = QtWidgets.QWidget()
self.tab1.setObjectName("tab1")
self.tabWidget.addTab(self.tab1, "tab1")
self.tab2 = QtWidgets.QWidget()
self.tab2.setObjectName("tab2")
self.tabWidget.addTab(self.tab2, "tab2")
self.grid_main = QtWidgets.QGridLayout(Form)
self.grid_main.addWidget(self.tabWidget)
Form.setLayout(self.grid_main)
class MyWindow(QtWidgets.QWidget, Ui_Form):
def __init__(self):
super().__init__()
self.setupUi(self)
self.infos = {
"Tab 3": ('Test 3', 'img/qt-logo.png'),
"Tab 4": ('Test 4', 'Ok.png'),
"Tab 5": ('Test 5', 'im.png'),
}
for name in self.infos:
self.create_widgets(name)
def create_widgets(self, name):
window = QMainWindow()
self.tabWidget.addTab(window, name)
basicToolBar = window.addToolBar('Basic')
basicToolBar.addAction(self.infos[name][0])
basicToolBar.addAction(QIcon(self.infos[name][1]), name)
tab = QTabWidget()
window.setCentralWidget(tab)
for i in range(5):
tab.addTab(QWidget(), f"{name}: tab-{i}")
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
# app.setStyleSheet(qdarkgraystyle.load_stylesheet())
app.setStyle('Windows')
window.show()
sys.exit(app.exec_())
