从qpushbutton继承的类别没有文字
Class inherited from QPushbutton shows no text
我正在尝试使用qt(简单计算器)创建第一个项目。我创建了一个从qpushbutton继承的类,无警告地编译代码,但是创建的按钮似乎为空。我不明白为什么它没有显示42 ...
这是代码:
main.cpp:
#include "bouton_chiffre.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
bouton_chiffre w(42, 0);
w.show();
return a.exec();
}
bouton_chiffre.h:
#ifndef BOUTON_CHIFFRE_H
#define BOUTON_CHIFFRE_H
#include <QObject>
#include <QWidget>
#include <QPushButton>
class bouton_chiffre : public QPushButton
{
Q_OBJECT
public:
bouton_chiffre(int, QWidget*);
private:
int valeur_du_bouton;
QPushButton *le_bouton;
};
#endif // BOUTON_CHIFFRE_H
bouton_chiffre.cpp:
#include "bouton_chiffre.h"
bouton_chiffre::bouton_chiffre(int valeur_init, QWidget *parent)
{
valeur_du_bouton = valeur_init;
le_bouton = new QPushButton(QString::number(valeur_init), parent);
}
您没有设置父按钮类的文本,而是在le_bouton
中创建此类的新实例。
在构造函数中做类似的事情:
bouton_chiffre::bouton_chiffre(int valeur, QWidget *parent)
: QPushButton(QString::number(valeur), parent)
{
/*...*/
}
您应该阅读有关继承方式的更多信息。在派生的类中,您可以访问基础类的所有受保护和公共成员,因此setText(QString::number(valuer));
也可以使用。但是,在通常的情况下,您可以从派生类的初始化列表(结肠之后)调用基类构造函数,并通过所需的参数。
创建具有基类类型的派生类的成员与继承有关。这只是一个不同的对象。
所以,我既从继承和创建qpushbutton,当然不能很好地工作...我修改了boutonchiffre.cpp,如下所示,它正如我现在所期望的:
#include "bouton_chiffre.h"
bouton_chiffre::bouton_chiffre(int valeur_init, QWidget *parent) : QPushButton(parent)
{
valeur_du_bouton = valeur_init;
setText(QString::number(valeur_init));
}
直接使用qpushbutton构造函数而不是setText更优雅,我可能会做到这一点。
谢谢大家的回答!
相关文章:
- constexpr 函数中的非文字(通过 std::is_constant_evaluated)
- 我可以使用条件运算符初始化C风格的字符串文字吗
- 如何使用字符串文字作为宏参数
- 有没有办法从非C/C++文件中读取C++原始字符串文字的内容
- 构造<int>具有 2 个字符串文字的向量
- 将数字打印成文字
- 初始化或分配空字符串文字到指向 C 中的 char 的指针或指向 C++ 中 const char 的指针的原因是什么
- 方便地对C++中的所有字符串文字进行模糊处理
- C++17 十六进制浮点文字单精度后缀冲突?
- 常量函数,当其参数是对文字类型的引用时
- 连接 LPCSTR 变量和文字?
- 在单击 QPushButton 时调用带有参数的函数
- 比较 std::string 和 C 样式字符串文字
- 按下 QPushbutton 时将文本保存到文件
- 如何从char16_t字符串文字中读取双精度?
- 指内置类型的文字
- 分配给浮点数的积分文字除法 - 为什么结果是错误的?
- std::remove() 按预期处理文字,但不能与取消引用的迭代器一起工作
- 为什么带有指针子对象的文字类类型的 constexpr 表达式不能是非类型模板参数
- 从qpushbutton继承的类别没有文字