Найти - Пользователи
Полная версия: QTВиджет, над которым курсор
Начало » GUI » QTВиджет, над которым курсор
1
napuznik
Добрый день, подскажите, пожалуйста, как узнать в QT имя (или текст) виджета, над каким находится курсор, не нажимая на него?
napuznik
Или другой вариант - что бы элемент отправлял свое имя при наведении на него курсора
reclosedev
Нужно переопределить 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_()
napuznik
reclosedev, спасибо, то, что нужно
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB