首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当鼠标指针hovor QListWidgetItem时,QListWidgetItem如何发出信号?

当鼠标指针hovor QListWidgetItem时,QListWidgetItem如何发出信号?
EN

Stack Overflow用户
提问于 2013-11-12 08:12:36
回答 2查看 2.5K关注 0票数 0

最近,我希望当鼠标指针进入时,QListWidgetItem可以发出一个信号。显示一个QStackedWidget,离开时,隐藏QStackedWidget;我定义了一个类My_ListWidget;在类中,我重写了enterEvent和leaveEvent。但这是我悬停的QListWidget,而不是QListWidgetItem,它总是显示QStackedWidget的第一个。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-12 08:28:06

覆盖mouseMoveEvent并使用itemAt(event.pos())获取光标下的QListWidgetItem

编辑:不需要覆盖mouseEvent,您可以使用信号entered (它也会传递项端的ModelIndex ),然后使用leaveEvent清除堆叠的小部件,您需要激活mouseTracking才能工作。

票数 3
EN

Stack Overflow用户

发布于 2013-11-20 20:15:00

对我来说,我在通过itemAt获取这个项目时遇到了一些问题。子类QListWidget时,可以使用setMouseTracking(True)启用鼠标跟踪,并使用itemEnteredleaveEvent

代码语言:javascript
复制
class My_ListWidgetClass(QListWidget):
    def __init__(self):
        QListWidget.__init__(self)

        self.setMouseTracking(True)

class Main(...):
    def __init__(self):

        self.centralWidget.connect( self.My_ListWidgetInstance,
                                    SIGNAL('itemEntered(QListWidgetItem *)'),
                                    self.whenItemEntered_doThis)

        self.centralWidget.connect( self.My_ListWidgetInstance,
                                    SIGNAL('leaveEvent(QEvent *)'),
                                    self.whenItemLeft_doThis)

    def whenItemEntered_doThis(self, QLWItem):
        # you can apply behavior here according 
        # to the QListWidgetItem given as argument 
        # e. g. get itemtext (itemtext = str(QLWItem.text())

    def whenItemLeft_doThis(self, Event):
        # executed when an item was left
        # unfortunatelly I can't explain, what you
        # can do with the event. I didn't need it...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19924003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档