场景说明:
1.当前窗口(m)有一个QListWidget (q1)和一个Qwidget(w1)
2. w1 提升为自定义类 MyList ,该自定义类中也有一个QListWidget (w2)
3.实现效果:w1和w2点击时互斥
问题描述:
1.m 发送的信号w2 可以接收到;
2.w2 发送的信号m 接收不到,但是连接为true;
3.直接在样式表中设置
QListWidget::item:selected:!active{background:rgba(100, 101, 93,1%);color:white}
鼠标点击时可以实现互斥的效果,但是,当用命令设置选中时:setSelected(true),当前行不会高亮显示;
尝试措施:
1.在MyList中安装事件过滤器,直接发送自定义信号,信号可以发出,但是m还是收不到:
ui->catalog_listWidget->installEventFilter(this);
bool MyList::eventFilter(QObject *obj, QEvent *e)
{
if(obj==ui->catalog_listWidget){
if(e->type()==QEvent::MouseButtonPress){
emit sendEmp();
qDebug()<<"2222sendEmp();"<<Qt::endl;
return false;
}
}
return QWidget::eventFilter(obj,e);
}
2.在MyList类中转发一次信号,可以连接,但是还是收不到;
3.在当前窗口类和自定义类中尝试注册元数据类型,但是都编译不过
#include <QMetaType>
qRegisterMetaType<MyList>("MyList");