QT多重继承带来的问题及解决办法,记录备查
多重继承connect时编译通不过。
网上很多办法是将QObject作为第一继承,确实可以解决一些问题。
但,这又会带来新问题,ui里设置的stylesheet或在代码里使用setStyleSheet不会生效——除非对单个widget使用setStyleSheet
m_pLabel_title_main->setStyleSheet("font-size:16px;font-weight:bold;color:white;font-family:\"Microsoft YaHei\";"); //可以
m_pFrame_container_main_title->setStyleSheet("background-color:rgb(0,100,177);"); //可以
这样就不可以:
【this->】setStyleSheet("\
QLabel[objectName^=\"label_title_\"]{\
font-weight:bold;\
color:red;\
}");
如果不考虑使用ui设计器里使用stylesheet,可以直接“将QObject作为第一继承”
QObject::connect(ui.pushButton_2, &QPushButton::clicked, this, &Dialog_exam_ready::on_btn_exit_clicked);
如果希望使用批量stylesheet,可以这样做:
class Dialog_exam_ready : /*public QObject,*/ public QDialog, public ITcpClient
QDialog* pThis = this;
QObject::connect(ui.pushButton_2, &QPushButton::clicked, pThis, [&]() {on_btn_exit_clicked(); });
**第3、4参数 不能: this, &Dialog_exam_ready::on_btn_exit_clicked
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!