PyQt – QTabWidget – шрифт текста табуляции при перемещении вкладокPython

Программы на Python
Ответить
Anonymous
 PyQt – QTabWidget – шрифт текста табуляции при перемещении вкладок

Сообщение Anonymous »

У меня есть приложение 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»