Quiero establecer el espaciado entre líneas de un QTextEdit.Establecer espaciado entre líneas en QTextEdit
No es ningún problema para conseguir esa información con
QFontMetrics::lineSpacing();
Pero cómo configurar eso?
he intentado con hojas de estilo, pero eso no funcionó:
this->setStyleSheet("QTextEdit{ height: 200%; }");
o
this->setStyleSheet("QTextEdit{ line-height: 200%; }");
solución parcial:
Bueno, he encontrado una solución - no de la manera que yo quería, pero al menos es simple y da casi mi comportamiento previsto, suficiente para mi prueba de concepto.
En cada nueva línea, hay algunas líneas de separación. Pero si solo escribe hasta que el texto se ajuste automáticamente a una nueva línea, no tendrá espacio de línea entre estas dos líneas. Este truco solo funciona con bloques de texto, mira el código.
Solo tenga en cuenta que es fuerza bruta y un hack feo. Pero proporciona algún tipo de espacio de línea a su hermoso QTextEdit. Llámalo cada vez que tu texto cambie.
void setLineSpacing(int lineSpacing) {
int lineCount = 0;
for (QTextBlock block = this->document()->begin(); block.isValid();
block = block.next(), ++lineCount) {
QTextCursor tc = QTextCursor(block);
QTextBlockFormat fmt = block.blockFormat();
if (fmt.topMargin() != lineSpacing
|| fmt.bottomMargin() != lineSpacing) {
fmt.setTopMargin(lineSpacing);
//fmt.setBottomMargin(lineSpacing);
tc.setBlockFormat(fmt);
}
}
}
Aún así, una buena solución sería de gran interés. – qwc