2010-07-20 100 views
0

Actualy,我有不同的選項卡。 我想實現的是, - 用戶點擊了標籤1 的鏈接 - 它會立即在標籤2中顯示QTextBrowser,在我設置的html錨點處。如何模仿鏈接點擊QTextBrowser

有沒有辦法做到這一點?

我已經設法通過使用tabWidget.setCurrentWidget() 切換標籤現在的問題是,如何將焦點設置到QTextBrowser所需的html錨點位置。

在此先感謝。

+0

在QTextBrowser'的'的文檔:如果文檔名稱與一個錨結束(例如,「#anchor」)時,文本瀏覽器自動滾動到該位置(使用scrollToAnchor()到達)。當用戶點擊一個超鏈接時,瀏覽器會以鏈接的href值作爲參數調用setSource()本身。您可以通過連接到sourceChanged()信號來跟蹤當前源。 – Ivo 2010-08-05 11:59:13

回答

2

下面是一個例子:

from tabwidget import Ui_MainWindow 
import sys 
from PyQt4 import QtGui, QtCore 

class MyApp(QtGui.QMainWindow): 
    def __init__(self, parent=None): 
     QtGui.QWidget.__init__(self, parent) 
     self.ui = Ui_MainWindow() 
     self.ui.setupUi(self) 

     QtCore.QObject.connect(self.ui.pushButton, QtCore.SIGNAL('clicked()'), self._show) 

    def _show(self): 
     self.ui.tabWidget.setCurrentWidget(self.ui.tab_2) 
     self.ui.textBrowser.setSource(QtCore.QUrl('text.html#anchor')) 

if __name__ == "__main__": 
    app = QtGui.QApplication(sys.argv) 
    mw = MyApp() 
    mw.show() 
    app.exec_()