Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何为QWidget设置用户数据?_C++_Qt_Qwidget - Fatal编程技术网

C++ 如何为QWidget设置用户数据?

C++ 如何为QWidget设置用户数据?,c++,qt,qwidget,C++,Qt,Qwidget,我想将一个整数设置为存储在QWidget中,我认为setUserData成员函数可以做到这一点,但我找不到任何文档。有什么提示吗?我不是QT方面的专家,但为什么不创建一个继承自QWidget并具有整数的类呢?像这样: class MyDerivedWidget : public QWidget { public: MyDerivedWidget(); private: Data *myUserData; }; 或者,如果您坚持使用setUserData签出最后一篇文

我想将一个整数设置为存储在
QWidget
中,我认为
setUserData
成员函数可以做到这一点,但我找不到任何文档。有什么提示吗?

我不是QT方面的专家,但为什么不创建一个继承自
QWidget
并具有整数的类呢?像这样:

class MyDerivedWidget : public QWidget
{
    public:
  MyDerivedWidget();

    private:
  Data *myUserData;
}; 

或者,如果您坚持使用
setUserData
签出最后一篇文章。

您可能正在寻找(这当然是继承的)。

QObject::setUserData被标记为“内部”——可能建议避免使用它。如果您使用显式MyDerivedWidget(QWidget parent=0){},仍然简单有效,这听起来有点老套,但答案很有用,所以我投了赞成票,thx.IMO,这是两个答案中最不老套的一个。如果您想在QWidget中存储数据(而不是仅仅使用普通结构),正确的方法是继承您想要的类,添加更多功能并“正确”地执行。至少通过继承,您可以添加访问器等,使其比仅仅传递带有附加随机属性的标准QWidget更有用…@G19Fanit,恭敬地表示不同意(显然库设计者站在我这边,否则,
setProperty()
将不存在)。有时,将一个简单的“数据包”与一个实例关联起来非常方便,而不必设计和维护一个完整的子类来实现它。@Barnabas我同意G19Fantac继承不是“hacky”,它是面向对象编程的一个基本特性。如果您对继承感到不舒服,我强烈建议您深入研究并学习更多内容。这是一个非常非常强大的工具。@Vannatab,谢谢你的回答,我们不要在这里断章取义。我并不是想说太多,“hacky”可能有点强。是否可以将一个对象(比如类Foo)指定为属性,并在查询时将其返回,而不只是使用字符串、int或其他简单的数据类型属性?我不确定,因为我不是QT专家。但我在下面发布的创建继承类型的解决方案肯定适用于任意对象。您可以简单地用“Foo”替换“Data”。