我有两个文件player.h和accountTab.h 我需要在accountTab.h中引用player.h中的player()类 和 来自accountTab.h的Ui :: accountTab
在mainwindow.h中,我将player()声明为:
class player *user;
并且有效
在player.h中,我尝试声明Ui :: accountTab与播放器相同:
class Ui::accountTab *tab;
但它不起作用。它会引发错误。
名称空间“Ui”中的'accountTab'未命名类型 class Ui :: accountTab * tab;
accountTab.h:
#include <QMainWindow>
#include <player.h>
namespace Ui {
class accountTab;
}
class accountTab : public QMainWindow
{
Q_OBJECT
public:
explicit accountTab(QWidget *parent = 0);
class player *user;
~accountTab();
private slots:
void on_cleanZoo_clicked();
void on_collectStars_clicked();
private:
Ui::accountTab *ui;
};
答案 0 :(得分:2)
如果您声明变量,则无需使用class
关键字。正确的声明是:
player *user;
UI::accountTab *tab;
将accountTab
类的定义移动到其名称空间中,并声明:
namespace Ui {
class accountTab : public QMainWindow
{
public:
explicit accountTab(QWidget *parent = 0);
class player *user;
~accountTab();
private:
void on_cleanZoo_clicked();
void on_collectStars_clicked();
private:
Ui::accountTab *ui;
};
}
使用private slots:
和单个词QObject
似乎不正确。也许这只是一个印刷错误,但你应该修复它。
答案 1 :(得分:-1)
你可以打开.ui文件以确保.xml文件中的类是accountTab(通常,.xml生成的类的名称是&#34; Form&#34 ;,如果你是由Qt设计师设计的)