Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 14, 2012 19:45:25

napuznik
Зарегистрирован: 2012-07-25
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

QTВиджет, над которым курсор

Добрый день, подскажите, пожалуйста, как узнать в QT имя (или текст) виджета, над каким находится курсор, не нажимая на него?

Офлайн

#2 Ноя. 15, 2012 19:26:07

napuznik
Зарегистрирован: 2012-07-25
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

QTВиджет, над которым курсор

Или другой вариант - что бы элемент отправлял свое имя при наведении на него курсора

Офлайн

#3 Ноя. 15, 2012 21:09:40

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

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)

Офлайн

#4 Ноя. 16, 2012 08:04:52

napuznik
Зарегистрирован: 2012-07-25
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

QTВиджет, над которым курсор

reclosedev, спасибо, то, что нужно

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version