Math++ 开发(4) - 番外篇:关于信号与槽的另一种看法

Math++ 开发(4) - 番外篇:关于信号与槽的另一种看法

qt中的信号和槽,可以近似看成Python->tkinter的command.

比如,看一个例子:

import tkinter as tk

class MainWindow:
	def __init__(self):
		self.root = tk.Tk()
		self.initb()

	def initb(self):
		tk.Button(self.root, text='test!', command=self.test).pack()

	def test(self):
		print('asdads')

	def main(self):
		self.root.mainloop()

def main():
	mw = MainWindow()
	mw.main()

if __name__ == '__main__':
	main()

Math++ 开发(4) - 番外篇:关于信号与槽的另一种看法_第1张图片

懂啦?

再看信号与槽绑定函数(其实吧,教"链接"也可以)原型.

inline QMetaObject::Connection connect(const QObject *sender, const char *signal,const char *member, Qt::ConnectionType type = Qt::AutoConnection) const;

等同于py的:

#伪代码.
sender = tk.Button(..., command=member.AutoConnection)[.pack()

这样看来,qt所谓"信号&槽"明明就是"回调函数"!

你可能感兴趣的:(Qt,qt)