2016-04-08 35 views
0

我使用另外,QTextDocument :: drawContents畫上一個窗口簡單的HTML(畫家)設置另外,QTextDocument畫家的矩形(如油漆)

我想這樣做在窗口中的一些邊緣內的圖紙,但我沒有看到直接指定繪畫的目標矩形(在畫家/窗口中)。

我想一些方法來做到這一點。

  • 使用QTextDocuments :: setMargin(雖然這並不允許左/上不同的值

  • 配售HTML到一個病急亂投醫<div>

  • 應用平移變換的畫家。

但是,這一切似乎有點太多了我想做的事情,我想,如果我丟失的東西直(如您的QPainter ::的drawText做,你告訴目標矩形)

回答

1

設置textWidth財產到文本應該適合的區域的寬度。如果文件太多以至於不合適,則您傳遞給drawContents的剪切矩形將垂直切除文本;當然你不能做太多的事情。

所以,這將是缺少的功能,你後:

void drawContents(QPainter * p, QTextDocument & doc, const QRectF & rect) { 
    p->save(); 
    p->translate(rect.topLeft()); 
    doc.setTextWidth(rect.width()); 
    doc.drawContents(p, rect); 
    p->restore(); 
} 

是的,你確實需要通過幾個跳火圈,這就是爲什麼它需要被提取出來。也許可惜,drawContents的類似超載不存在。