У меня есть приложение PyQt с QTabWidget. Я изменил шрифт вкладок с помощью следующего кода, и он работает.
tbfont = QFont('Verdana', 14)
tab.setFont(tbfont)
Теперь я сделал вкладки подвижными с помощью опции ниже
tab.setMovable(True)
У меня теперь странное поведение: когда я перемещаю вкладки, текст на вкладке меняется на другой шрифт. Как только он переместится в новое положение, указанные выше изменения шрифта будут применены. Я не мог понять, как заставить вкладку сохранять изменения шрифта. Применение того же шрифта к tabBar не помогло.
tab.tabBar().setFont(tbfont)
Обходной путь — установить шрифт приложения такой же, как tbfont. Но это не позволяет мне изменить tbfont позже. Есть ли у кого-нибудь идеи, как это сделать? Минимальный пример приведен ниже
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QGridLayout, QTabWidget
from PyQt5.QtGui import QFont
class MainWindow(QWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setWindowTitle('PyQt QTabWidget Move test')
self.setGeometry(100, 100, 400, 200)
main_layout = QGridLayout(self)
self.setLayout(main_layout)
# create a tab widget
tab = QTabWidget(self)
tbfont = QFont('Verdana', 14)
tab.setFont(tbfont)
# First Tab
tab1 = QWidget(self)
# Second Tab
tab2 = QWidget(self)
# add pane to the tab widget
tab.addTab(tab1, 'First')
tab.addTab(tab2, 'Second')
tab.setMovable(True)
tab.tabBar().setFont(tbfont)
main_layout.addWidget(tab, 0, 0, 2, 1)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec())
Подробнее здесь: https://stackoverflow.com/questions/799 ... oving-tabs