У меня есть окно, содержащее несколько QRowWidget
s, которые являются пользовательскими виджетами, определенными мной. Эти QRowWidget
s содержат QLineEdit
s и другие стандартные виджеты. Чтобы показать или скрыть определенные части QRowWidget
, я переопределил методы focusInEvent()
всех виджетов внутри него. Он отлично работает, когда я нажимаю на QRowWidget
, появляются скрытые элементы.курсор ушел в PyQT
Странно, что мигающий курсор строки hoverwer не отображается в QLineEdit
в пользовательских виджетах. Я могу выбрать их как щелчком мыши, так и с вкладкой, а эффект свечения указывает, что в нем выбран QLineEdit
, я могу выбрать текст в нем или начать вводить текст в любом месте, где бы я ни находился, но курсор никогда не появляется и это довольно раздражает.
Моя первая мысль заключалась в том, что это ошибка на Mac, но у меня такой же опыт на SuSe Linux.
Я использую python 2.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
Можете ли вы опубликовать код вашего 'focusInEvent()'? Я ответил на догадку, но показывая, что именно вы делаете, вы получите лучшие ответы. – tacaswell