Я перепробовал все, что знаю (что по общему признанию не очень), и искал в Google около часа, но я просто не могу понять это.
У меня есть класс под названием PlaceHolder
, который наследует от QListWidgetItem
, Я хочу иметь возможность регистрировать двойные щелчки на этом, поэтому я попытался использовать сигнал itemDoubleClicked(QListWidgetItem*)
на QListWidget
, Однако, когда я делаю это, мне нужен слот с такими же аргументами. Это не будет проблемой, если мне не понадобится доступ к функциям / переменным PlaceHolder
это щелкнуло, но я делаю.
Если есть что-то еще, что вам нужно знать, чтобы помочь мне, пожалуйста, не стесняйтесь спрашивать. Спасибо за любое время и усилия, которые вы потратили на эту проблему.
Я немного неясен по вашему вопросу. Проблема в том, что у вас есть QListWidgetItem * вместо PlaceHolder *?
Пытаться:
void MyWidget::handleDoubleClickSlot(QListWidgetItem* item)
{
PlaceHolder* placeHolderItem = qobject_cast<PlaceHolder*>(item);
if (placeHolderItem == NULL)
{
// oops, not a PlaceHolder item
return;
}
placeHolderItem->myAwesomePlaceHolderMethod();
}
Как показано, он будет возвращать NULL, если элемент каким-то образом не является объектом PlaceHolder.
Других решений пока нет …