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