战斗风 2022-11-24 16:01 采纳率: 0%
浏览 8
已结题

QWidget提升为自定义类之后,其内部控件无法向当前窗口发送信号,但是当前窗口可以向这个自定义类发送信号

场景说明:
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");

  • 写回答

1条回答 默认 最新

  • 战斗风 2022-11-24 16:05
    关注
    #include   <QMetaType>  
    
    

    复制的时候漏了

    评论

报告相同问题?

问题事件

  • 系统已结题 12月2日
  • 创建了问题 11月24日

悬赏问题

  • ¥15 mmocr的训练错误,结果全为0
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀