当前位置: 技术问答>linux和unix
QT界面之间的跳转问题【100分求助】(在线关注)
来源: 互联网 发布时间:2016-06-01
本文导语: 大家帮我看看下面的程序: ViewMenuAlarms.h: #ifndef _ViewMenuAlarms_H_ #define _ViewMenuAlarms_H_ #include #include "ui_ViewMenuAlarms.h" #include "ViewMenuAlarms.h" #include "ViewMenuLog.h" #include "ViewMenuParameters.h" class ViewMenuAlarms: public...
大家帮我看看下面的程序:
ViewMenuAlarms.h:
#ifndef _ViewMenuAlarms_H_
#define _ViewMenuAlarms_H_
#include
#include "ui_ViewMenuAlarms.h"
#include "ViewMenuAlarms.h"
#include "ViewMenuLog.h"
#include "ViewMenuParameters.h"
class ViewMenuAlarms: public QWidget,
public Ui_ViewMenuAlarms
{
Q_OBJECT
public:
ViewMenuAlarms(QWidget* = 0);
ViewMenuLog ViewMenuLog_access;
ViewMenuParameters ViewMenuParameters_access;
private slots:
int check_load_ViewMenuLog();
int check_load_ViewMenuParameters();
};
#endif
----------------------------------------------------------------------------------------------------------------------
ViewMenuAlarms.cpp:
#include
#include "ViewMenuAlarms.h"
ViewMenuAlarms::ViewMenuAlarms(QWidget*parent) : QWidget(parent)
{
setupUi(this);
connect(DownpushButton, SIGNAL(clicked()), this, SLOT(check_load_ViewMenuLog()));
connect(UppushButton, SIGNAL(clicked()), this, SLOT(check_load_Parameters()));
}
int ViewMenuAlarms::check_load_ViewMenuLog()
{
ViewMenuLog_access.show();
this->hide();
}
int ViewMenuAlarms::check_load_ViewMenuParameters()
{
ViewMenuParameters_access.show();
this->hide();
}
//#endif
-----------------------------------------------------------------------------------------------------------------------
ViewMenuParameters.h:
#ifndef _ViewMenuParameters_H_
#define _ViewMenuParameters_H_
#include
#include "ui_ViewMenuParameters.h"
#include "ViewMenuParameters.h"
#include "ViewMenuAlarms.h"
class ViewMenuParameters: public QWidget,
public Ui_ViewMenuParameters
{
Q_OBJECT
public:
ViewMenuParameters(QWidget* = 0);
ViewMenuAlarms ViewMenuAlarms_access;
private slots:
int check_load_ViewMenuAlarms();
};
#endif
-------------------------------------------------------------------------------------------------------------------------------
我在ViewMenuAlarms界面中设置了2个按钮,点击分别跳转到ViewMenueLog界面和ViewMenuParameters界面,但是编译时却得到提示:
ViewMenuAlarms.h:20: 'ViewMenuParameters' is used as a type but is not defined as a type
跳转到ViewMenuLog没有任何问题,但跳转到ViewMenuParameters界面时因为在其他界面中也有信号设置的也是跳转到这个界面,所以编译时出现了上面的问题,这是什么原因呢,我试过在不同界面间跳转,如果跳转到的界面没有其他信号也是连接到这个界面就没有任何问题,一旦出现有多个信号跳转到这个界面的会就会出现上面的问题,具体原因望达人指点。
ViewMenuAlarms.h:
#ifndef _ViewMenuAlarms_H_
#define _ViewMenuAlarms_H_
#include
#include "ui_ViewMenuAlarms.h"
#include "ViewMenuAlarms.h"
#include "ViewMenuLog.h"
#include "ViewMenuParameters.h"
class ViewMenuAlarms: public QWidget,
public Ui_ViewMenuAlarms
{
Q_OBJECT
public:
ViewMenuAlarms(QWidget* = 0);
ViewMenuLog ViewMenuLog_access;
ViewMenuParameters ViewMenuParameters_access;
private slots:
int check_load_ViewMenuLog();
int check_load_ViewMenuParameters();
};
#endif
----------------------------------------------------------------------------------------------------------------------
ViewMenuAlarms.cpp:
#include
#include "ViewMenuAlarms.h"
ViewMenuAlarms::ViewMenuAlarms(QWidget*parent) : QWidget(parent)
{
setupUi(this);
connect(DownpushButton, SIGNAL(clicked()), this, SLOT(check_load_ViewMenuLog()));
connect(UppushButton, SIGNAL(clicked()), this, SLOT(check_load_Parameters()));
}
int ViewMenuAlarms::check_load_ViewMenuLog()
{
ViewMenuLog_access.show();
this->hide();
}
int ViewMenuAlarms::check_load_ViewMenuParameters()
{
ViewMenuParameters_access.show();
this->hide();
}
//#endif
-----------------------------------------------------------------------------------------------------------------------
ViewMenuParameters.h:
#ifndef _ViewMenuParameters_H_
#define _ViewMenuParameters_H_
#include
#include "ui_ViewMenuParameters.h"
#include "ViewMenuParameters.h"
#include "ViewMenuAlarms.h"
class ViewMenuParameters: public QWidget,
public Ui_ViewMenuParameters
{
Q_OBJECT
public:
ViewMenuParameters(QWidget* = 0);
ViewMenuAlarms ViewMenuAlarms_access;
private slots:
int check_load_ViewMenuAlarms();
};
#endif
-------------------------------------------------------------------------------------------------------------------------------
我在ViewMenuAlarms界面中设置了2个按钮,点击分别跳转到ViewMenueLog界面和ViewMenuParameters界面,但是编译时却得到提示:
ViewMenuAlarms.h:20: 'ViewMenuParameters' is used as a type but is not defined as a type
跳转到ViewMenuLog没有任何问题,但跳转到ViewMenuParameters界面时因为在其他界面中也有信号设置的也是跳转到这个界面,所以编译时出现了上面的问题,这是什么原因呢,我试过在不同界面间跳转,如果跳转到的界面没有其他信号也是连接到这个界面就没有任何问题,一旦出现有多个信号跳转到这个界面的会就会出现上面的问题,具体原因望达人指点。
|
不是的,我假设你还有个子界面b,b是在Enter 里被实例化的.然后b里的一个按钮要通知显示界面c.
你可以让这个signal触发Enter 里的一个slot.然后这个slot再emit一个signal去通知c要显示.
这样就不会出现ViewMenuAlarms.h:20: 'ViewMenuParameters' is used as a type but is not defined as a type
你可以让这个signal触发Enter 里的一个slot.然后这个slot再emit一个signal去通知c要显示.
这样就不会出现ViewMenuAlarms.h:20: 'ViewMenuParameters' is used as a type but is not defined as a type