QRowWidget
私が定義したカスタムウィジェットである複数のを含むウィンドウがあります。これらには、およびその他の標準ウィジェットQRowWidget
が含まれています。QLineEdit
の特定の部分を表示または非表示にするために、その中のすべてのウィジェットのQRowWidget
メソッドを過剰に定義しました。focusInEvent()
完全に機能します。をクリックするQRowWidget
と、非表示の要素が表示されます。
QLineEdit
奇妙なことに、点滅するカーソルラインホバーがカスタムウィジェット内のに表示されません。マウスクリックまたはタブの両方で選択できます。グロー効果は、QLineEdit
が選択されていること、テキストを選択できること、またはクリックした場所から入力を開始できることを示しますが、カーソルは表示されず、かなり迷惑です。
私の最初の考えは、これはMacのバグだと思っていましたが、SuSeLinuxでも同じ経験があります。
私はPython2.7とPyQt4を使用しています。
これは:の__init__()
にありQRowWidget
ます
for i in self.findChildren(QWidget):
i.focusInEvent = self.focusInEvent
そして、これは独自のものfocusInEvent()
です:
def focusInEvent(self, event):
if self.pself.focusedLine:
self.pself.focusedLine.setStyleSheet("color: #666;")
self.pself.focusedLine.desc.hide()
self.pself.focusedLine.closebutton.hide()
self.setStyleSheet("color: #000;")
self.desc.show()
self.closebutton.show()
self.pself.focusedLine = self