showEvent
をQTextBrowserに再実装することができます。
# from PySide import QtGui
from PyQt4 import QtGui
class CustomTextBrowser(QtGui.QTextBrowser):
'''Reimplment show event to append text'''
def showEvent(self, event):
# do stuff here
#self.append('This random text string ')
event.accept()
が、これは予期しない動作を引き起こす可能性があり、このウィジェットの表示を切り替える他のQtのイベントを意味し、QTextBrowserの文字列にウィジェットが表示されるたびに追加されますことを警告されてください。この理由から、信号とスロットを使用することが望ましいですが、ではなく、が信号/スロットを使用するため、公正な警告を伴うshowEvent
のQEventバージョンがあります。
# from PySide import QtGui
from PyQt4 import QtGui
class CustomTextBrowser(QtGui.QTextBrowser):
'''Reimplment show event to append text'''
def __init__(self, *args, **kwds):
super(CustomTextBrowser, self).__init__(*args, **kwds)
self._loaded = False
def showEvent(self, event):
if not self._loaded:
# do stuff here
#self.append('This random text string ')
self._loaded = True
event.accept()
別の解決策として、信号/スロットの戦略を使用することであろう:ウィジェットが表示された後に複数回インスタンス変数を設定し、その値をトグルすることでテキストを追加回避する
一つの解決策__init__
を上書きして、サブクラスに自動的にテキストを追加することができます。シグナル/スロットのメカニズムは、Qtプログラマにとって最も直感的かつ論理的です。