Seite 1 von 1

QFont - gleiche Werte bei verschiedenen Fontgrößen

Verfasst: Freitag 23. Februar 2024, 09:51
von Nobuddy
Hallo zusammen,

Mir ist bei folgendem Code aufgefallen, dass bei unterschiedlichen Fontgrößen, immer die gleiche Texthöhe ich bei QFont erhalte.
Vielleicht könnt Ihr mir dabei helfen, dies zu lösen!

Code: Alles auswählen

import sys
from PyQt5.QtWidgets import (
	QApplication,
	)
from PyQt5.QtGui import  (
	QFont,
	QFontMetrics,
	QFontMetricsF
	)

if __name__ == '__main__':
	app = QApplication(sys.argv)

	text_string = 'Text'
	font_size = 10
	f = QFont()
	f.setFamily('NimbusSansL')
	f.setWeight(int(font_size))
	fm = QFontMetricsF(f)
	text_height = fm.height()
	text_width = fm.width(text_string)
	print('text_height: ', text_height)
	print('text_width: ', text_width)
Grüße Nobuddy

Re: QFont - gleiche Werte bei verschiedenen Fontgrößen

Verfasst: Freitag 23. Februar 2024, 09:54
von __deets__
Schau mal was du da einstellst: https://doc.qt.io/qt-6/qfont.html#Weight-enum - das ist nicht, was du glaubst, was du einstellst.

Re: QFont - gleiche Werte bei verschiedenen Fontgrößen

Verfasst: Freitag 23. Februar 2024, 11:41
von Nobuddy
Hallo __deets__,
habe mit meinem Englisch Probleme, aber habe setPointSize entdeckt, das sollte für text_height das Richtige sein.
Ist setWeight das Richtige für die Textweite?

Die Höhe vom Font sowie die Breite des Textes sind für mich wichtig, um den Text richtig platzieren zu können. Daher, wenn Du weitere Tipps für mich hast, wäre ich Dir dankbar!

Code: Alles auswählen

import sys
from PyQt5.QtWidgets import (
	QApplication,
	)
from PyQt5.QtGui import  (
	QFont,
	QFontMetrics,
	QFontMetricsF
	)

if __name__ == '__main__':
	app = QApplication(sys.argv)

	text_string = 'Text'
	font_size = 10
	f = QFont()
	f.setFamily('NimbusSansL')
	f.setPointSize(int(font_size))
	fm = QFontMetricsF(f)
	text_height = fm.height()
	print('text_height: ', text_height)
	f.setWeight(int(font_size))
	fm = QFontMetricsF(f)
	text_width = fm.width(text_string)
	print('text_width: ', text_width)

Re: QFont - gleiche Werte bei verschiedenen Fontgrößen

Verfasst: Freitag 23. Februar 2024, 13:16
von __deets__
Nein, Breite ist Width, nicht Weight. Weight ist Schwere, oder im Schriftartenbezug die Staerke. Also duenn oder dick.

Re: QFont - gleiche Werte bei verschiedenen Fontgrößen

Verfasst: Freitag 23. Februar 2024, 14:19
von Nobuddy
Danke, für die Erklärung ... dann brauche ich "setWeight" nicht.
Mit "setPointSize" erhalte ich die richtige Texthöhe.

Die Textbreite passt als nicht in eine Zeile, kann das am Font "NimbusSansL" liegen?

Re: QFont - gleiche Werte bei verschiedenen Fontgrößen

Verfasst: Freitag 23. Februar 2024, 14:46
von __deets__
Die Frage verstehe ich nicht. Wenn dein Text zu breit ist, liegt das an deinem Font, deiner Fontgroess, deiner Fensterbreite, oder deiner Textmenge. Was auch immer davon nicht passt.

Re: QFont - gleiche Werte bei verschiedenen Fontgrößen

Verfasst: Freitag 23. Februar 2024, 15:29
von Nobuddy
Ja, liegt an dem Font und Format.
Wenn ich den Standard Font von qt nehme, dürfte es das Problem nicht geben.
Vielleicht, lässt sich das auch mit einem Code, die Differenz in der Formatausgabe erreichen.
Überlege mir mal was.