3 つのラベルがあり、それぞれのラベルのサイズが異なるとします。このサンプル コードを調べます。
import sys
from PySide2 import QtCore, QtGui, QtWidgets
def Fonty():
ok, font = QtWidgets.QFontDialog.getFont(tableWidget)
if ok:
app.setFont(font)
tableWidget.resizeColumnsToContents()
tableWidget.resizeRowsToContents()
app = QtWidgets.QApplication(sys.argv)
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)
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_())
「フォント」というラベルの付いたボタンは、標準の Qt フォント ダイアログ ボックスを開きます。これを実行すると、ダイアログ ボックスでフォント サイズを変更すると、テーブルのヘッダーとボタンのテキストのサイズが変更されることがわかります。ただし、フォント サイズが固定されているラベルは変更されません。フォント サイズの変更に合わせてサイズを変更したい場合はどうすればよいですか? これらのウィジェットのフォントのサイズを「スケーリング」するにはどうすればよいですか?