Uso un QTextEdit para algunas entradas. Pero quiero ajustar la altura de la caja. ¿Puedo establecer la altura según el número de líneas que quiero que sean visibles a la vez?¿Cómo establecer el número de líneas para un QTextEdit?
Respuesta
Si utiliza QPlainTextEdit
, algo como esto debe hacer el truco:
void SetHeight (QPlainTextEdit* edit, int nRows)
{
QFontMetrics m (edit -> font()) ;
int RowHeight = m.lineSpacing() ;
edit -> setFixedHeight (nRows * RowHeight) ;
}
Es posible que desee añadir dos o tres píxeles como el margen; el experimento dirá.
QTextEdit es un widget normal, por lo que puede usar la propiedad minimumHeight. Creo, sin embargo, que es realmente imposible establecer la altura mínima en función del número de líneas. Esto redimensionaría automágicamente el tamaño mínimo de un widget cada vez que cambie el tamaño de la fuente. Pero si conoce el tamaño de la fuente, puede establecer el tamaño mínimo utilizable de su widget.
QTextEdit ha permitido zoom rueda del ratón por defecto, por lo que tendría que desactivar esta opción. – TonyK
Uso QFont
para determinar la altura de una sola línea de texto en el QTextEdit
(QTextEdit debe tener una fuente propiedad). Después de eso, multiplique el valor de QFont
altura con el número de líneas que desea mostrar y establezca la altura (mínima) del widget en ese valor.
El problema con QTextEdit es que cada línea puede tener una altura diferente. Si solo necesita un formato de texto único (pero con diferentes colores permitidos), tal vez QPlainTextEdit sea mejor. – TonyK
Esto debería funcionar:
QTextEdit *myEdit = new QTextEdit(myContentString);
QSize myEditSize = myEdit->document()->size().toSize();
myEditSize.setWidth(QWIDGETSIZE_MAX);
myEdit->setMaximumSize(myEditSize);
La mejora de la respuesta aceptada acerca QPlainTextEdit
. Además de lineSpacing
, el valor para setFixedHeight
debe contener: 2 márgenes del subyacente QTextDocument
, 2 anchos del marco y márgenes de contenido del widget. Además de eso, QFontMetrics
debe obtenerse de una fuente del documento, no del widget en sí. Por lo tanto, la función hipotética setHeight
debe decir lo siguiente:
void setHeight (QPlainTextEdit *ptxt, int nRows)
{
QTextDocument *pdoc = ptxt->document();
QFontMetrics fm (pdoc->defaultFont());
QMargins margins = ptxt->contentsMargins();
int nHeight = fm.lineSpacing() * nRows +
(pdoc->documentMargin() + ptxt->frameWidth()) * 2 +
margins.top() + margins.bottom();
ptxt->setFixedHeight (nHeight);
}
- 1. Establecer espaciado entre líneas en QTextEdit
- 2. cómo agregar números de líneas a: QTextEdit?
- 3. establecer el número máximo de líneas en uilabel
- 4. qtextedit - cambiar el tamaño para ajustar
- 5. Establecer el número máximo de líneas de texto para un EditText
- 6. Cómo establecer la altura del elemento para un número fijo de líneas de texto
- 7. Cómo establecer el espaciado entre líneas Graphics.DrawString
- 8. Agregar número para establecer
- 9. ¿Cómo hacer enlaces para hacer clic en un QTextEdit?
- 10. GridView: cómo establecer el número de filas para mostrar
- 11. Cómo reducir el número de líneas verticales en un gráfico de líneas KendoUI?
- 12. número de líneas visibles de un TextBlock
- 13. Recuperar el número total de líneas en un archivo
- 14. Moviendo el cursor dentro de QTextEdit
- 15. QTextEdit. ¿Cómo seleccionar texto manualmente?
- 16. contando el número de líneas en un archivo de texto
- 17. Node.js: Cuente el número de líneas en un archivo
- 18. Cómo limitar el número de líneas en JTextArea?
- 19. Encontrar el número de líneas en un proyecto con powershell
- 20. Número de líneas en csv.DictReader
- 21. Establecer el número predeterminado de lugares decimales para la impresión
- 22. Cómo leer el número de líneas en UITextView
- 23. Cómo calcular el número de líneas de código fuente
- 24. Cómo encontrar el número de líneas de UITextView
- 25. Cómo encontrar el número de líneas de UILabel
- 26. Contar el número de líneas en un archivo txt con Python excluyendo las líneas en blanco
- 27. ¿Cómo obtener el número de líneas con SplFileObject?
- 28. Uso de richtext en QTextEdit
- 29. Establecer el número máximo de filas visibles para listview
- 30. QTextEdit con diferentes colores de texto (Qt/C++)
Esto ignora el margen y el borde del widget por lo que se corta la última línea. La cantidad de píxeles para agregar depende del tema en uso, por lo que es más complejo que esto. –