2013-07-14 67 views
0

我有一個QTextBrowser在那裏我已經輸入的示例文本:QTextBrowser超鏈接PyQt4中

Column1 Column2 
1 2 3 4 www.google.com 

有標籤列之間和有空格的數字之間。 plainText = QTextBrowser.toPlainText()給出:

Column1 Column2 
1 2 3 4 www.google.com 

現在,我想使鏈接可點擊。通過這個,我將文本設置爲html。 我寫了一些字符串操作與

WORDS = re.split("(\W+)",plainText) 

這讓

['Column1', '\t', 'Column2', '\n', '1', ' ', '2', ' ', '3', ' ', '4', '\t', 'www', '.', 'google', '.', 'com', ' ', ''] 

,取而代之的 「www」 在HTML格式的超級鏈接

<a href=http://www.google.com>www.google.com</a> 

然後,我刪除了詞的項目:「。」,「test」,「。」,「com」。

['Column1', '\t', 'Column2', '\n', '1', ' ', '2', ' ', '3', ' ', '4', '\t', '<a href=http://www.google.com>www.google.com</a>', ' ', ''] 

然後我再重建所有的話,零件的字符串,

<br/>. 

現在更換斷行\ N,當我設置字符串到QTextBrowser,鏈接正確顯示和也可點擊。問題是:輸入的文本,因爲它是現在的HTML,忽略/刪除所有空格(如果不止一個)和製表符! 輸出類似於(該鏈接現在是藍色並帶有下劃線)

Column1 Column2 
1 2 3 4 www.google.com 

我如何才能讓沒有格式化的超鏈接被破壞?

也許我在錯列車上?

+0

我想我已經得到了它。 – user2366975

回答

0

我想我明白了。如果它可能是有用的,這裏是我的解決方案: 一個html文件確實尊重你的格式,如果你把CSS中的樣式設置爲「pre」,而不是像QTextBrowser那樣「預包裝」。 此外,鍵入的鏈接最終可以直接被創建的超鏈接替換。

已生成並設置好的給QTextBrowser的HTML文件,然後partwise樣子:

<style type="text/css">#editor { white-space: pre; }</style> 

<p id='editor', style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a name="editor"></a>Column1  Column2</p>