QTextEdit satır aralığını ayarlamak istiyorum.QTextEdit satır aralığını ayarla
O
QFontMetrics::lineSpacing();
Ama bu nasıl oluşturulacağı konusunda bu bilgileri almak için bir sorun yok?
Ben Stylesheets ile çalıştı, ancak bu işe yaramadı:
this->setStyleSheet("QTextEdit{ height: 200%; }");
veya
this->setStyleSheet("QTextEdit{ line-height: 200%; }");
Kısmi çözüm:
Eh, bir çözüm bulduk - istediğim şekilde değil, ama en azından basit ve konsept kanıtım için yeterince niyetlenmiş davranışımı veriyor.
Her yeni satırda bazı satır aralığı vardır. Ancak, metin otomatik olarak yeni bir satıra sarılıncaya kadar yazarsanız, bu iki satır arasında satır aralığı olmaz. Bu hack sadece metin blokları ile çalışır, kod bakın.
Sadece akıl almaz güç ve çirkin bir hack olduğunu unutmayın. Ama güzel QTextEdit'inize bir çeşit satır aralığı sağlıyor. Metninizin değiştiği her zaman arayın.
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);
}
}
}
Yine iyi bir çözüm büyük bir ilgi olurdu. – qwc