2

アプリの 1 つに編集不可能な QTextEdit ウィジェットがあります。コンボボックスの選択に基づいて、追加情報を表示したい。

私の現在のアプローチは、ディレクトリから HTML ファイルをロードし、それらを QTextEdit-Field に表示することです。これは簡単に思えますが (関数 setHtml または insertHtml を使用)、思ったほど簡単には機能しません。最初にファイルを解析またはロードする必要があると思います。どうすれば続行できますか?

h = (helpdir + str + ".html") # contains the helpfiles path (Format QString)
# Load in HTML?
textfield.insertHtml(h) # Should somehow insert the html

実装が容易な他のアプローチ (特にヘルプの将来の翻訳に照らして) は歓迎されます。追加のライブラリや非基本パッケージを使用しないソリューションを優先します。

4

2 に答える 2

4

はい、HTML ファイルを に挿入する前にロードする必要がありますQTextEdit。しかし、それを行うのはとても簡単です:

    f = QFile("path/to/your/htmlfile")
    f.open(QFile.ReadOnly|QFile.Text)
    istream = QTextStream(f)
    textfield.setHtml(istream.readAll())
    f.close()

問題なく動作します (HTML ファイルがそれほど大きくないと仮定します)。必要に応じて、ファイルを 1 行ずつ読み取ることもできます。

于 2012-10-07T14:02:21.707 に答える
1

QtWebKitを使用できます。これは、qt で html コンテンツを使用するための最良の方法です。python qt のインストールに付属している必要があります。以下のコードをチェックしてください。

test.py

import sys
from PyQt4 import QtCore, QtGui, QtWebKit

app = QtGui.QApplication(sys.argv)
view = QtWebKit.QWebView()
view.setHtml(open('test.html').read())
window = QtGui.QMainWindow()
window.setCentralWidget(view)
window.show()
sys.exit(app.exec_())

test.html

<html><body><h1>test page</h1>testing...</body></html>
于 2012-10-07T13:29:33.377 に答える