Qt调用另一个类的ui界面以及解决the class contaning “Ui::Widget“ could not be found的方法

it2023-04-04  68

调用另一个类的ui: 类A调用类B的ui(B必须为设计师界面类),需构造一个B类对象,A获取该对象的指针后,在A.cpp中#include "ui_B.h"(该头文件是编译时自动生成的)后即可通过B的指针调用B的ui:B->ui->pushButton

类A:A.h

#ifndef A_H #define A_H class B; class A { public: A(); void use_B_ui(); private: B b; } #endif

A.cpp

#include "A.h" #include "B.h" #include "ui_B.h" //qt编译时会生成的头文件,有了这个就可以通过类B对象来操作类B的UI A::A() { b = new B(); } void A::use_B_ui() { b->ui->pushButton->setText("on/off"); }

作者在调用时,有出现过B的ui无法转到槽的情况,并且qt弹窗: the class contaning “Ui::Widget” could not be found in xxx.cpp xxx.cpp xxx.cpp Please verify the #include-directives. 这种情况下只需将B.cpp中的#include "ui_B.h放到B.h的开头即可(不知道什么原理,可以解决问题)

最新回复(0)