Форум сайта python.su
Добрый день, подскажите, пожалуйста, как узнать в QT имя (или текст) виджета, над каким находится курсор, не нажимая на него?
Офлайн
Или другой вариант - что бы элемент отправлял свое имя при наведении на него курсора
Офлайн
Нужно переопределить http://qt-project.org/doc/qt-4.8/qwidget.html#enterEvent или http://qt-project.org/doc/qt-4.8/qwidget.html#mouseMoveEvent
и поставить http://qt-project.org/doc/qt-4.8/qwidget.html#mouseTracking-prop в True
#!/usr/bin/env python # -*- coding: utf-8 -*- from PyQt4 import QtGui class MyWidget(QtGui.QPushButton): def __init__(self, *args, **kwargs): super(MyWidget, self).__init__(*args, **kwargs) self.setMouseTracking(True) # В этих методах можно отправить сигнал и т.п. def enterEvent(self, event): print 'Enter', self.text() def leaveEvent(self, event): print 'Leave', self.text() def mouseMoveEvent(self, event): print 'Mouse Move', self.text() # test app = QtGui.QApplication([]) main_widget = QtGui.QWidget() layout = QtGui.QVBoxLayout(main_widget) for i in range(10): widget = MyWidget("Test %s" % i) layout.addWidget(widget) main_widget.show() app.exec_()
Отредактировано reclosedev (Ноя. 16, 2012 06:08:40)
Офлайн
reclosedev, спасибо, то, что нужно
Офлайн