【发布时间】:2023-03-12 20:13:01
【问题描述】:
我正在尝试实现一个功能,当鼠标在 gui 上单击时,会触发一个功能
以下是我的鼠标点击检测,当我点击 gui 的任何部分时它不起作用
from PySide.QtCore import *
from PySide.QtGui import *
import sys
class Main(QWidget):
def __init__(self, parent=None):
super(Main, self).__init__(parent)
layout = QHBoxLayout(self)
layout.addWidget(QLabel("this is the main frame"))
layout.gui_clicked.connect(self.anotherSlot)
def anotherSlot(self, passed):
print passed
print "now I'm in Main.anotherSlot"
class MyLayout(QHBoxLayout):
gui_clicked = Signal(str)
def __init__(self, parent=None):
super(MyLayout, self).__init__(parent)
def mousePressEvent(self, event):
print "Mouse Clicked"
self.gui_clicked.emit("emit the signal")
a = QApplication([])
m = Main()
m.show()
sys.exit(a.exec_())
这是我的目标
Mouseclick.gui_clicked.connect(do_something)
任何建议将不胜感激
【问题讨论】:
-
欢迎来到 Stack Overflow!您可以做一些事情来帮助顺利获得答案。尝试包含尽可能多的相关信息。简单地说“它不起作用”不会让你走得太远。包括任何错误消息,或你得到的调试输出(后者是你在这里肯定想要的)。确保只包含 最少 数量的代码,看起来你在这里做得很好,做得很好!进行一些调试并在此处发布输出,您将走上正确的轨道
-
感谢您的建议,所以到目前为止我还没有遇到任何错误,gui窗口确实弹出了我输入的标签,主要问题是我点击时鼠标点击没有注册gui,除了阅读我正在做的 Qt 事件的文档之外,我不确定如何调试它。
标签: python qt user-interface pyqt pyside