Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在PyQt中使用插槽_Qt_Pyqt_Pyqt4_Signals Slots - Fatal编程技术网

为什么在PyQt中使用插槽

为什么在PyQt中使用插槽,qt,pyqt,pyqt4,signals-slots,Qt,Pyqt,Pyqt4,Signals Slots,我在学习Qt图书馆。最近我想到了插槽的概念,到目前为止,我把它们理解为对某些事件的反应而执行的函数。只是这个还是别的什么 为什么他们为如此普通的事物选择了如此异国情调的名字?这个词有很多意思。他们打算在Qt中考虑插槽,这是什么意思 谢谢插槽带有信号。将信号连接到插槽。这是Qt本身的一个核心概念,它不是PyQt特有的 Qt文档包含以下详细信息: 这只是一个非常方便的概念,可以在代码中实现相当清晰的层分离 插槽本身是普通函数(在C++中),您可以将其用作普通函数以及“信号接收器”。术语信号和插槽有些

我在学习Qt图书馆。最近我想到了
插槽的概念,到目前为止,我把它们理解为对某些事件的反应而执行的函数。只是这个还是别的什么

为什么他们为如此普通的事物选择了如此异国情调的名字?这个词有很多意思。他们打算在Qt中考虑
插槽
,这是什么意思


谢谢

插槽带有信号。将信号连接到插槽。这是Qt本身的一个核心概念,它不是PyQt特有的

Qt文档包含以下详细信息:

这只是一个非常方便的概念,可以在代码中实现相当清晰的层分离


插槽本身是普通函数(在C++中),您可以将其用作普通函数以及“信号接收器”。术语
信号
插槽
有些不匹配

更好的选择可能是
信号
接收器
,或者
连接器
插槽

<>在C++中,一个信号只能连接到一个定义为时隙的函数。尝试将信号连接到普通功能就像尝试将usb电缆连接到以太网端口

然而,在PyQt中,这种区别就不那么重要了,因为任何可调用的都可以连接到信号,而不仅仅是预定义的插槽

话虽如此,PyQt的最新版本还提供了一个可用于定义具有多个不同签名的插槽的。一般来说,在PyQT中,连接到预定义的槽(无论是C++还是PyQt)比普通Python可调用的更有效。
有关PyQt中信号和插槽支持的完整详细信息,请参阅。

但是是什么导致他们选择了一个单词
插槽
?一些有趣的故事或事故?@xraf。他们想要的
slot
的含义可能与您提供的字典链接中的第一个最接近:即,接收某物的孔:如锁孔,或。。。(好吧,发挥你的想象力;-)我想他们可能也在寻找一个与
signal
相同字母开头的单词。这听起来不合逻辑。为什么函数应该是接收器?函数是当某些信号发生时触发的动作。每一个动作都是由某种信号引起的。@xraf。否。信号的发射完全独立于它们是否连接到任何东西;它们不一定会导致任何事情发生。时隙仅仅是监听广播信号的本地接收器。它所采取的行动完全独立于它可能接收到的任何信号(它可能正在监听许多不同的信号,或者没有)。信号的“动作”是它所广播的信息;仅此而已。下面的链接图片显示操作员将插件插入不同的插槽,以将信号连接到预期线路,这可能有助于理解信号和插槽的概念。就像这行代码一样,“connect”是一个关键字:self.input\u V\u bt.clicked.connect(self.file\u open\u mp4),