Я пытаюсь установить шрифт QTextEdit
таким же, как QTreeWidget
.
Когда я получаю шрифт от QTextEdit
и пытаюсь установить его на QTreeWidget
, он не работает. Однако, если я создам новый шрифт QFont("Segoe UI", 9)
, который окажется таким же, как QTreeWidget
на моей платформе (Windows 7), и установлю для него значение QTextEdit
, он будет работать.
Следующий код печатает True
для сравнения шрифтов, но не работает должным образом. Раскомментирование self.text.setFont(new_font)
исправляет это. Почему?
import string
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QFont
TEXT = string.printable[:-5]
def print_font(font):
print("Family: {}, Size: {}".format(font.family(), font.pointSize()))
class Window(QWidget):
def __init__(self, *args, **kwargs):
QWidget.__init__(self, *args, **kwargs)
self.list = QTreeWidget(self)
self.list.addTopLevelItem(QTreeWidgetItem((TEXT,)))
self.list.setRootIsDecorated(False)
self.list.setHeaderHidden(True)
self.list.setMinimumHeight(25)
self.text = QTextEdit(self)
self.text.setText(TEXT)
self.text.setMinimumHeight(25)
self.layout = QGridLayout()
self.layout.setContentsMargins(5, 5, 5, 5)
self.layout.addWidget(self.list)
self.layout.addWidget(self.text)
self.resize(620, 20)
self.setLayout(self.layout)
self.show()
list_font = self.list.font()
new_font = QFont("Segoe UI", 9)
print(list_font == new_font)
self.text.setFont(list_font)
# self.text.setFont(new_font)
print_font(self.list.font())
print_font(self.text.font())
app = QApplication(sys.argv)
win = Window()
sys.exit(app.exec_())