0

QTreeWidgetのItemClicked()SIGNALの適切なシミュレーションが見つかりません。

ItemClicked Signalが生成されるようにそれをシミュレートする方法はありますか?

例:QTreeWidgetの派生クラスでItemClickedを発行することはできますが、(QTルールとして)その外部で発行することはできません。

4

1 に答える 1

0

emitクラスAの呼び出しを使用して、クラスBの信号を発信することはできません。ただし、シグナルとスロットのドキュメントには次のように記載されていることに注意してください。

「1つのスロットに必要な数の信号を接続でき、信号は必要な数のスロットに接続できます。信号を別の信号に直接接続することも可能です。(これにより、2番目の信号がすぐに送信されます。最初のものが放出されるときはいつでも。)」

したがって、これを回避するには、クラスBに送信させたいものと同じシグニチャのクラスAの信号を宣言し、信号を相互に接続します。

connect(
    myclass, SIGNAL(itemClicked(QTreeWidgetItem*, int)),
    treewidget, SIGNAL(itemClicked(QTreeWidgetItem*, int))
); 

次に、itemClickedfromを発行しmyclassます。私が間違っていなければ、この場合は機能します...そしてtreewidgetのitemClickedシグナルを起動します。

于 2011-12-09T03:46:42.003 に答える