Python 我应该使用Qt信号还是事件?

Python 我应该使用Qt信号还是事件?,python,pyside2,Python,Pyside2,我使用的是PySide2,但不清楚信号和事件 如果我们有两个人在做两个视图 一个人正在做ListView 人员B正在执行参数视图 选择列表项时,更新参数视图 我应该如何连接它们?使用信号还是事件 也许我会有另一个视图,它也需要更新,而列表项选择更改 信号 事件 在这里,您可以阅读信号和事件之间的比较,并决定什么适合您 我相信你最好使用单插槽和插槽来解决这个问题,但这是你的选择 希望这有助于你做出决定,祝你度过愉快的一天。在这里,你可以阅读信号和事件之间的比较,并决定什么适合你 我相信你最好使用

我使用的是PySide2,但不清楚信号和事件

如果我们有两个人在做两个视图

一个人正在做ListView

人员B正在执行参数视图

选择列表项时,更新参数视图

我应该如何连接它们?使用信号还是事件

也许我会有另一个视图,它也需要更新,而列表项选择更改


信号

事件


在这里,您可以阅读信号和事件之间的比较,并决定什么适合您 我相信你最好使用单插槽和插槽来解决这个问题,但这是你的选择


希望这有助于你做出决定,祝你度过愉快的一天。

在这里,你可以阅读信号和事件之间的比较,并决定什么适合你 我相信你最好使用单插槽和插槽来解决这个问题,但这是你的选择


希望这有助于你做出决定,祝您度过愉快的一天。

这两个选项都是有效的,因为它们使用相同的机制来传输信息,但最大的区别在于,如果要发送QEvent,则必须访问该空间中的对象,而使用Qt信号,您不应该知道该空间中的对象,而应该只知道连接中的对象

我的建议是应该使用信号来解耦类。我建议你阅读:


这两个选项都是有效的,因为它们使用相同的机制来传输信息,但最大的区别在于,如果要发送QEvent,则必须访问该空间中的对象,而使用Qt信号,您不应该知道该空间中的对象,而应该只知道连接中的对象

我的建议是应该使用信号来解耦类。我建议你阅读:


如果您正在使用线程,信号是一个不错的选择,信号可以在线程中发出并更改视图窗口小部件如果您正在使用线程,信号是一个不错的选择,信号可以在线程中发出并更改视图窗口小部件
class ListView(QListView):
    # do something

class ParameterView(QWidget):
    def update(self):
        # do something

list_view = ListView()
parameter_view = ParameterView()
list_view.selectChanged.connect(parameter_view.update)

class ListView(QListView):
    def selectChanged(self):
        QApplication.sendEvent(self, SelectChangedEvent)

class SelectChangedEvent(QEvent):
    # initialize ...

class ParameterView(QWidget):
    def update(self):
        # do something

    def event(self, event):
        if event.type() == SelectChangedEvent:
            self.update()