更加自然的信号与槽写法¶
相比于官方库中的信号与槽, qmlease 对它们做了简单的封装, 带来了以下特性:
- 使用小写的名称:
signal
slot
-
ide 能够正确地识别类型标注, 并提供自动补全:
与官方的对比:
-
参数可以用原生的 python 类型表示 (qmlease 会自动完成类型转换)
-
非侵入式的设计: 被 slot 装饰的函数, 仍然可以像往常一样被调用
自动转换类型 (清单)¶
下面是完整的可自动转换的类型清单:
slot(*args)
Alias | Real value | Note |
---|---|---|
bool |
bool |
basic type |
float |
float |
basic type |
int |
int |
basic type |
str |
str |
basic type |
QObject |
QObject |
object |
object |
QObject |
object |
'item' |
QObject |
object (string) |
'object' |
QObject |
object (string) |
'qobject' |
QObject |
object (string) |
dict |
QJSValue |
qjsvalue |
list |
QJSValue |
qjsvalue |
set |
QJSValue |
qjsvalue |
tuple |
QJSValue |
qjsvalue |
... |
QJSValue |
qjsvalue |
'any' |
QJSValue |
qjsvalue (string) |
slot(result=...)
Alias | Real value | Note |
---|---|---|
None |
None |
basic type |
bool |
bool |
basic type |
float |
float |
basic type |
int |
int |
basic type |
str |
str |
basic type |
dict |
'QVariant' |
qvariant |
list |
'QVariant' |
qvariant |
set |
'QVariant' |
qvariant |
tuple |
'QVariant' |
qvariant |
... |
'QVariant' |
qvariant |