2024-04-25 10:27:14 发布
网友
在Python Qt中,我将QListWidget信号连接到插槽,如下所示:
QtCore.QObject.connect(self.myList, QtCore.SIGNAL("itemClicked(QListWidgetItem *)"), self.ListEventHandler)
我的问题是:QListWidgetItem *中的尾随星号有什么作用?你知道吗
QListWidgetItem *
几个解释要点(我将尽量避免C++语法):
QObject
QtCore.SIGNAL("itemClicked(QListWidgetItem *)")
itemClicked
QListWidgetItem
void itemClicked(QListWidgetItem *item);
返回到字符串进行内省,以标识信号或插槽,删除void、;和变量名(item),留下:
void
;
item
itemClicked(QListWidgetItem *)
将以上内容用QtCore.SIGNAL()和一对引号括起来,您就有了:
QtCore.SIGNAL()
什么是指针? 关于这一点有很多疑问。Here is one在答案中用一些类比来为你简化事情。你知道吗
如果这是旧式语法,那么新的样式是什么? 多谢弗罗登提起这事。PyQt有一种更“pythonic”的方法将信号连接到插槽,格式如下:
object.signalName.connect(otherObject.slotName)
在这种情况下:
self.myList.itemClicked.connect(self.ListEventHandler)
阅读更多in the docs。你知道吗
它是C++语法,用于指示函数^ {< CD1>}传递给一个^ ^ {CD2>}的指针作为唯一的参数。你知道吗
您可以将其视为“按引用传递”,而不是“按值传递”。你知道吗
几个解释要点(我将尽量避免C++语法):
- pyqt是一个用QC++编写的Qt周围的Python包装器。你知道吗
- Qt为从
使用的语法叫做"Old-Style Signals and Slots",它使用C++函数签名。你知道吗 C++具有比Python更多的变量类型。在C++中,变量可以是值、引用或指针。指针的类型名后面有一个星号。
在C++中,这看起来像:QObject
继承的类提供内省,经常使用字符串来标识事物。Python有原生的自省,但C++没有。你知道吗QtCore.SIGNAL("itemClicked(QListWidgetItem *)")
是指一个名为itemClicked
的Qt信号,它的参数是指向QListWidgetItem
的指针,而不是项本身。你知道吗返回到字符串进行内省,以标识信号或插槽,删除
void
、;
和变量名(item
),留下:将以上内容用
QtCore.SIGNAL()
和一对引号括起来,您就有了:什么是指针?
关于这一点有很多疑问。Here is one在答案中用一些类比来为你简化事情。你知道吗
如果这是旧式语法,那么新的样式是什么?
多谢弗罗登提起这事。PyQt有一种更“pythonic”的方法将信号连接到插槽,格式如下:
在这种情况下:
阅读更多in the docs。你知道吗
它是C++语法,用于指示函数^ {< CD1>}传递给一个^ ^ {CD2>}的指针作为唯一的参数。你知道吗
您可以将其视为“按引用传递”,而不是“按值传递”。你知道吗
相关问题 更多 >
编程相关推荐