我根据新的connect syntax在Qt5中使用了以下语法,以避免带有可检查项的QListWidget
的插槽和信号的类型不匹配。
connect(item, &QListWidget::itemChanged,this , &mainWindow::checkItemChanged);
我想运行我的插槽以防任何列表项更改其状态。为此,由于this answer,我使用itemChanged
信号,但它受到保护,编译时间错误如下所示:
error: ‘void QListWidget::itemChanged(QListWidgetItem*)’ is protected
我该如何处理?我应该将自己的QListWidget
子类化,还是有其他解决方案?
答案 0 :(得分:2)
您可以根据Qt版本使用更合适的语法:
#if QT_VERSION >= 0x050000
connect(item, &QListWidget::itemChanged, this , &MainWindow::checkItemChanged);
#else
connect(item, SIGNAL(checkItemChanged), this , SLOT(checkItemChanged));
#endif
(或所有版本的“旧的基于字符串的”)。