|
|
1
4
您可以使用
使用
QVariant是为保存不同类型的对象而设计的,当程序员想要通过Qt的接口传递用户定义的类型,而Qt本身无法知道程序员想要使用哪种类型时,QVariant被用于各种Qt约定中。
要转换回原始类型,请使用以下组合
自定义类型必须提供:
以下内容
您还可以声明自己的“元类型包装器”,该包装器保存类型和类型描述。最简单的例子:
|
|
2
2
不,你不能!这是非法的:
QObjects有身份的概念,并且是不可复制的类型。您必须通过指针操作它们,这将是QObject值的列表。
但更一般地说(关于寻求通过选角避开这类事情)。。。QList和其他模板化容器专门为其参数化的对象类型分配一定数量的内存。因此
所以首先:如果你投了一个 对象 与铸造 指针,指针 那么你真的失去了你无法找回的信息。。。如果你甚至可以让编译器让你这样做。第二:即使你有一个槽,可以将指针转换为“punned类型”,然后由于这样做带来的各种陷阱而再次返回,你也需要小心。尽管指向不同类型的指针与指针大小相同,但你必须考虑 Strict Aliasing Requirement .
你可以用类似
但人们常说,需要像这样的运行时输入的情况可能意味着需要重新审视设计。如果类a、类B和类C如此不同,以至于它们没有共同的接口,那么将它们放在一个引人注目的集合中是什么原因呢?你能用一堆毫无共同点的东西做些什么?虽然这些情况 做 提出(并激发变体的存在),退后一步,问问你是否真的有这种情况是很有价值的。 |
|
|
Wolfspirit · 你如何确定一个时间点是否在一个时间段内? 2 年前 |
|
|
h-swell · QT——如何使用布局类? 2 年前 |
|
|
LeftFrog · Qt中macOS上的按钮颜色不变 2 年前 |
|
|
Bobby · Qt是否与RAII设计模式不兼容? 2 年前 |
|
|
Harvey · 如何更改Qt Creator配置项目的默认套件? 2 年前 |