我无法为QTreeWidget找到ItemClicked()SIGNAL的正确模拟。
有没有办法模拟它以便生成ItemClicked信号?
例如:我们可以在QTreeWidget的派生类中发出ItemClicked但不能(作为QT规则)在它之外。
答案 0 :(得分:0)
您不能对A类使用emit
调用来发出B类信号。但请注意the documentation for signals and slots说:
“您可以将任意数量的信号连接到单个插槽,并且可以根据需要将信号连接到任意数量的插槽。甚至可以将信号直接连接到另一个信号。(这每当发出第一个信号时,它将立即发出第二个信号。)“
因此,您可以通过在A类中声明与您希望B类发射的相同签名的信号并将信号连接在一起来解决此问题:
connect(
myclass, SIGNAL(itemClicked(QTreeWidgetItem*, int)),
treewidget, SIGNAL(itemClicked(QTreeWidgetItem*, int))
);
然后从myclass
发出itemClicked。如果我没有弄错的话,它将适用于这种情况......并为你发射treewidget的itemClicked信号。