में लाइन स्पेसिंग सेट करें, मैं QTextEdit की लाइन दूरी सेट करना चाहता हूं।QTextEdit
यह
QFontMetrics::lineSpacing();
लेकिन वह कैसे स्थापित करने के लिए के साथ कि जानकारी पाने के लिए कोई समस्या नहीं है?
मैं स्टाइलशीट साथ कोशिश की, लेकिन बात नहीं बनी:
this->setStyleSheet("QTextEdit{ height: 200%; }");
या
this->setStyleSheet("QTextEdit{ line-height: 200%; }");
आंशिक समाधान:
ठीक है, मैं एक समाधान मिल गया है - जिस तरह से मैं इसे चाहता था, लेकिन कम से कम यह आसान है और यह लगभग मेरे इरादे से व्यवहार करता है, जो मेरे अवधारणा के सबूत के लिए पर्याप्त है।
प्रत्येक नई लाइन पर कुछ लाइनस्पेसिंग है। लेकिन अगर आप तब तक टाइप करते हैं जब तक टेक्स्ट स्वचालित रूप से एक नई लाइन पर लपेट नहीं जाता है, तो आपके पास इन दो पंक्तियों के बीच लाइन-स्पेसिंग नहीं होता है। यह हैक केवल टेक्स्ट ब्लॉक के साथ काम करता है, कोड देखें।
बस ध्यान रखें कि यह क्रूर बल और बदसूरत हैक है। लेकिन यह आपके सुंदर QTextEdit को किसी प्रकार का लाइन-स्पेसिंग प्रदान करता है। जब भी आपका टेक्स्ट बदलता है, इसे हर बार कॉल करें।
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);
}
}
}
फिर भी, एक अच्छा समाधान बहुत रुचि की होगी। – qwc