2012-05-02 9 views
5

से एक लाइन/ब्लॉक निकालें मैं QTextEdit से ब्लॉक/लाइन हटाने के साथ संघर्ष कर रहा हूं। नीचे कोड (?) काम करना चाहिए, लेकिन यह मेरे लिए अज्ञात कुछ के लिए अनंत लूप में समाप्त होता है। मुझे संदेह है कि संपादित होने पर next() और previous() का स्वागत नहीं है।QTextEdit

QTextBlock block = document()->begin(); 
while (block.isValid()) { 
    if (to_do_or_not_to_do(block)) { 
     QTextCursor cursor(block); 
     cursor.select(QTextCursor::BlockUnderCursor); 
     cursor.removeSelectedText(); 
    } 
    block = block.next(); 
} 

पुनरावृत्ति QTextDocument::findBlockByNumber() का उपयोग कर और उसी तरह के रूप में ऊपर या तो काम नहीं किया था में ब्लॉक को हटाने।

मैं सराहना करता हूं कि अगर कोई मुझे सही दिशा में इंगित कर सकता है कि सभी ब्लॉक को कैसे उखाड़ फेंकना है और यदि आवश्यक हो तो उन्हें हटा दें।

पीएस
मेरे विशेष मामले में एक ब्लॉक = एक पंक्ति।
क्यूटी 4.6.2, उबंटू 10.04 64

उत्तर

5

यह बदल रहा है मेरे लिए एक छोटे से काम करता है:

while (block.isValid()) { 
    if (to_do_or_not_to_do(block)) { 
     QTextCursor cursor(block); 
     block = block.next(); 
     cursor.select(QTextCursor::BlockUnderCursor); 
     cursor.removeSelectedText(); 
    } 
    else 
     block = block.next(); 
} 
+0

सही। क्योंकि स्पष्ट रूप से 'हटाया गया चयन टेक्स्ट) (ब्लॉक' ब्लॉक को मारता है, और 'अगला() 'अब और काम नहीं करता है। धन्यवाद! :) –

संबंधित मुद्दे