2010-07-20 47 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_()