Python在PyQt中一键调用两个函数

Posted

技术标签:

【中文标题】Python在PyQt中一键调用两个函数【英文标题】:Python calling two functions by clicking one button in PyQt 【发布时间】:2015-08-29 11:12:41 【问题描述】:

我是 Python 新手。我使用 PyQt 创建了一个按钮,并希望通过单击同一个按钮来调用两个单独的函数

QtCore.QObject.connect(self.start, QtCore.SIGNAL('clicked()'), self.trial,self.trial2)

【问题讨论】:

如何将两个函数放入一个新的单个函数中并通过按钮执行? 但我希望这两个功能同时启动。 为什么要同时开始? 我希望这两个函数都从用户那里获取相同的输入并同时显示输出 我认为您应该使用这两个功能编辑您的问题。如果不确切知道自己想要达到什么目标,就很难给出建议。 【参考方案1】:

你可以只连接两次信号,比如:

QtCore.QObject.connect(self.start, QtCore.SIGNAL('clicked()'), self.trial)
QtCore.QObject.connect(self.start, QtCore.SIGNAL('clicked()'), self.trial2)

当信号发出时,这两个函数都会被调用。根据文件:

如果一个信号连接到多个槽,则在发出信号时,这些槽的激活顺序与建立连接的顺序相同。

【讨论】:

我希望这两个功能同时启动。这行得通吗? @user2693313 查看我的编辑。如果您想同时(几乎)启动它们,您可能需要启动一个新线程来完成插槽中的工作。 @user2693313:不谈multithreading 或multiprocessing,您的计算机无法同时或并行执行操作。但取决于你想要做什么,这并不重要,因为串行处理应该很快,并且在正常使用时感觉就像是并行处理。 你能举个例子吗? 这有点困难。首先考虑一下你是否真的需要并行做事情。你能告诉我们你想要做什么吗?你的目标是什么?

以上是关于Python在PyQt中一键调用两个函数的主要内容,如果未能解决你的问题,请参考以下文章

如何在 django 模板中调用带有参数的 python 函数? [复制]

pyqt 怎样切换两个窗口?

pyqt5 继承python类可以传递信号函数吗

Python/pyside,pyqt(pyside,pyqt optional): 控制文本选择的函数

如何从 PyQT 调用 javascript 函数

Python 几行代码实现一键抠图,收费应用 BYEBYE