- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的代码有问题。对于我创建的每个 CButton 指针,编译器都会不断显示此错误。
/home/trafel/ドキュメント/Projects/C++/CCalc/ccalc.h:23: error : 'CButton' does not name a type
CButton *button_0;
^
CButton 类从 QPushButton 扩展而来。这是主标题中的代码:
#ifndef CCALC_H
#define CCALC_H
#include <QWidget>
#include <QMainWindow>
#include <QPushButton>
#include "clabel.h"
#include "cbutton.h"
class CCalc : public QMainWindow
{
Q_OBJECT
public:
CCalc();
~CCalc();
public slots:
void CPush(QString);
void CAction(QString);
private:
CButton *button_0;
CButton *button_1;
CButton *button_2;
CButton *button_3;
CButton *button_4;
CButton *button_5;
CButton *button_6;
CButton *button_7;
CButton *button_8;
CButton *button_9;
CButton *button_equal;
CButton *button_plus;
CButton *button_minus;
CButton *button_multiply;
CButton *button_divide;
CButton *button_power;
CButton *button_root;
CButton *button_leftParenthesis;
CButton *button_rightParenthesis;
CButton *button_return;
CButton *button_ce;
CLabel *label_input;
CLabel *label_output;
QMenu *menu_session;
QAction *session_new;
QAction *session_open;
QAction *session_save;
QAction *session_quit;
QMenu *menu_log;
QAction *log_inspect;
QMenu *menu_help;
QAction *help_help;
QAction *help_about;
};
#endif // CCALC_H
这是来自 CButton 类 header 的内容:
#ifndef CBUTTON_H
#define CBUTTON_H
#include <QPushButton>
#include "ccalc.h"
class CButton : public QPushButton
{
Q_OBJECT
public:
CButton(QWidget *parent);
~CButton();
QString getValue();
void setValue(QString string);
private:
QString value;
};
#endif // CBUTTON_H
我是不是忘了添加一些东西?
最佳答案
简短的解决方案:
在文件 "cbutton.h"
中替换:
#include "ccalc.h"
与:
class CCalc;
或者完全删除 #include
,因为您似乎根本不用它。
解释:
注意你有循环依赖:在"ccalc.h"
你需要知道什么是CButton
,在"cbutton.h"
你需要知道什么是 CCalc
。
这意味着如果首先解析 "cbutton.h"
,您将按此顺序点击这些行(仅显示相关行):
1. #define CBUTTON_H <-- from file "cbutton.h"
2. #include "ccalc.h" <-- from file "cbutton.h"
3. #include "cbutton.h" <-- from file "ccalc.h", but as CBUTTON_H is already defined, the content of this file is ignored.
4. CButton *button_0; <-- from file "ccalc.h", which indeed refers to an undefined class, as we have not reached the line "class CButton" yet.
这些情况下的解决方案是,如果在 "ccalc.h"
中,您不需要知道 "cubutton.h"
中的方法,但是只是为了知道该类存在,用一个类原型(prototype)替换它:class CButton;
。这同样适用于 #include "clabel.h"
和 #include "clabel.h"
。
关于c++ - [Qt] : 'CButton' does not name a type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37494951/
我在 Visual Studio 2012 update 4 上使用 C++,我有一个对话框,我想在其中显示一个显示无边框位图(.bmp 文件)的按钮 我已经扩展了 CButton 以添加我的工具提示
我第一次尝试创建一个子类控件,但我觉得我做错了什么。控件是一个按钮,我放在设计器中。这是它的类: class TTTField : public CButton { public: BEGIN
我正在尝试添加以下功能,但我不知道从哪里开始。任何建议、示例或指导将不胜感激。 我想在此上下文中向主模型的 cgridview 添加按钮。此模型的 cgridview 中可用的每条记录都有一个名为“l
我的代码有问题。对于我创建的每个 CButton 指针,编译器都会不断显示此错误。 /home/trafel/ドキュメント/Projects/C++/CCalc/ccalc.h:23: error :
使用标准按钮,如果我有 OK 和 Cancel,默认为 OK,我按下右箭头,Cancel 被选中,按下键盘上的 enter 键,Cancel 按钮函数被调用。 ownerdraw 按钮不会发生这种情况
在子类化 CButton 时,我希望每次按下按钮时按钮的颜色都会增加。但是以下内容对背景颜色没有任何影响。但是,文本显示“c”以递增。谢谢 void CMyButton::OnLButtonDown(
当用户单击一个按钮时,我在 MFC 中有一组普通的 CButtons,它的外观应该改变以反射(reflect)它已被单击的想法,如图中所示 我尝试使用以下代码更改单击按钮的样式 button->Set
我创建了一个简单的基于对话框的应用程序,并使用 Visual Studio 编辑器在默认的 CDialog 中添加了三个按钮(通过拖放它们)。 默认的确定和取消按钮也在那里。 我想在单击按钮 3 时将
我正在使用 C++ MFC,并使用 CButton 创建了一个简单的对话框,每个 CButton 都映射到 .rc 脚本文件中的 .bitmap 文件和资源 ID (ID_BUTTON*)。 类似的行
合作: Visual Studio 2017; MFC、C++。 我正在尝试修改 MFC 项目,以便 CDialog 派生类检测何时向其中添加子控件(CButton 派生类)。最好获取这些 CButt
我知道 CButton、CEdit 等都是易于实现的方便类,但是要覆盖它们并停止某些父类(super class)函数来实现您自己的按钮功能,有点仓促。只是覆盖 CWnd 并从头开始不是更实用吗?这更
如果我尝试定义一个 GUI 按钮 CButton,例如 CButton btn;,我会得到一个错误-> 因为我试图将它放在堆栈上 但是如果我执行 CButton *btn = new CButton(
我使用的是 sql server 2014 和 visual studio 2015 社区我从事 MFC DB 程序(单个文档和 OLE DB)但遇到了大麻烦 问题是当我通过 MFC 更改正在使用的
如何使用 MFC 或 Win32 API 在 WinCE/Windows Mobile 5/6 中更改聚焦/未聚焦的 CEdit、CListCntl、CButton 的边框颜色? 最佳答案 您可以通过
我是一名优秀的程序员,十分优秀!