2024-04-24 12:01:49 发布
网友
到目前为止,我找到的唯一解决方案是为每个小部件创建一个缩放因子,然后在更改字体时,遍历所有需要这种处理的小部件并分别缩放它们的字体。这对一个简单的GUI来说是可行的。Tut如果有很多小部件并且类型不同,这可能会很麻烦,因为findChildren函数可能会有点麻烦。我很想知道是否有更好的方法。也许我还没有找到一个Qt方法
import sys from PySide2 import QtCore, QtGui, QtWidgets def Fonty(): ok, font = QtWidgets.QFontDialog.getFont(tableWidget) if ok: app.setFont(font) size = font.pointSize() children = tableWidget.findChildren(QtWidgets.QLabel) for child in children: font.setPointSize(size * child.scaleF) child.setFont(font) tableWidget.resizeColumnsToContents() tableWidget.resizeRowsToContents() app = QtWidgets.QApplication(sys.argv) fontsize = app.font().pointSize() tableWidget = QtWidgets.QTableWidget() tableWidget.setColumnCount(4) tableWidget.setRowCount(1) for x in range(3): label = QtWidgets.QLabel(tableWidget) font = QtGui.QFont() size = 8 + (x * 2) label.scaleF = size/fontsize font.setPointSize(size) label.setFont(font) label.setText("Testing") tableWidget.setCellWidget(0, x, label) tableWidget.resizeColumnsToContents() pushButton = QtWidgets.QPushButton() pushButton.setText("Fonts") pushButton.clicked.connect(Fonty) tableWidget.setCellWidget(0, 3, pushButton) tableWidget.resizeColumnsToContents() tableWidget.show() sys.exit(app.exec_())
到目前为止,我找到的唯一解决方案是为每个小部件创建一个缩放因子,然后在更改字体时,遍历所有需要这种处理的小部件并分别缩放它们的字体。这对一个简单的GUI来说是可行的。Tut如果有很多小部件并且类型不同,这可能会很麻烦,因为findChildren函数可能会有点麻烦。我很想知道是否有更好的方法。也许我还没有找到一个Qt方法
相关问题 更多 >
编程相关推荐