QTextEdit
의 글꼴을 QTreeWidget
과 같게 설정하려고합니다.명백한 이유없이 QTextEdit의 글꼴 설정이 무시됩니다.
QTextEdit
에서 글꼴을 가져 와서 QTreeWidget
으로 설정하려고하면 작동하지 않습니다. 그러나 QTreeWidget
이 내 플랫폼 (Windows 7)에 있고 QTextEdit
으로 설정된 새로운 글꼴 QFont("Segoe UI", 9)
을 만들면 작동합니다.
다음 코드는 글꼴 비교에 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_())
좋은 통찰력. 감사. – Fenikso