Как смоделировать сигнал itemClicked QTreeWidget без создания производного класса? - PullRequest
0 голосов
/ 09 декабря 2011

Я не могу найти правильную симуляцию для ItemClicked () SIGNAL для QTreeWidget.

Есть ли способ смоделировать его так, чтобы генерировался сигнал ItemClicked?

Например: мы можем генерировать ItemClicked в производном классе QTreeWidget, но не можем (как правило QT) вне его.

1 Ответ

0 голосов
/ 09 декабря 2011

Вы не можете использовать вызов emit для класса A для передачи сигналов класса B. Но обратите внимание, что документация для сигналов и слотов гласит:

"Вы можете подключить столько сигналов, сколько вы хотите, к одному слоту, и сигнал может быть подключен к столько слотов, сколько вам нужно. Можно даже подключить сигнал непосредственно к другому сигналу. (Это будет издавать второй сигнал сразу же, как только будет выпущен первый.) "

Таким образом, вы можете обойти это, объявив сигнал в классе A той же сигнатурой, что и класс B, чтобы излучать, и соединив сигналы вместе:

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

Затем сгенерируйте itemClicked from myclass. Если я не ошибаюсь, это сработает в этом случае ... и сработает сигнал элемента клика по элементу treewidget.

...