• 6213阅读
  • 9回复

继承QGraphicsWidget的一个button类,不能用容器操作类对象? [复制链接]

上一主题 下一主题
离线ihatecoding
 
只看楼主 倒序阅读 楼主  发表于: 2012-05-17
QVector<ImageButton>ivec;

离线ihatecoding
只看该作者 1楼 发表于: 2012-05-17
QVector<ImageButton>ivec;
ivec.push_back(p_button);

会在第二句那里报错。
class ImageButton : public QGraphicsWidget
{
    Q_OBJECT
public:
    ImageButton(const QPixmap &pixmap, QGraphicsItem *parent = 0);
这是构造函数。

求大神解决不能用容器的问题。。。
离线ihatecoding
只看该作者 2楼 发表于: 2012-05-17
error: 'QGraphicsWidget::QGraphicsWidget(const QGraphicsWidget&)' is private

这是编译器报的错误。
xxxx::addbutton(ImageButton *p_button)
{
     QVector<ImageButton>ivec;
     ivec.push_back(p_button);
}
离线ihatecoding
只看该作者 3楼 发表于: 2012-05-17
自己写了一个复制构造函数,但是依然会报错。。。难道继承这个类的类对象就不能用容器操作么???着急啊,求解答
离线ihatecoding
只看该作者 4楼 发表于: 2012-05-17
QVector<ImageButton*>ivec;
上边少写了一个解引用的东西
离线jdwx

只看该作者 5楼 发表于: 2012-05-17
有一个容器:QObjectList
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线kimtaikee

只看该作者 6楼 发表于: 2012-05-17
OMG QVector 模板在编译阶段会根据你传入的T的参数对其进行初始化,你要实现一个没有传入参数的默认构造函数

  1. class ImageButton : public QGraphicsWidget
  2. {
  3.     Q_OBJECT
  4. public:
  5.     explicit ImageButton(); // your fxxking default constructor
  6.     explicit ImageButton(const QPixmap &pixmap, QGraphicsItem *parent = 0);

离线ihatecoding
只看该作者 7楼 发表于: 2012-05-17
回 6楼(kimtaikee) 的帖子
这个解决了。谢谢。
还有一个问题,你看看我这构造函数都是通过new才能把imagebutton关联到QGraphicsItem。我怎么把已经有的imagebutton关联到QGraphicsItem?不通过QGraphicsItem无法在一个scene里边显示。我这么理解widget,GraphicsItem和scene的关系对吗?当然我知道scene的最后显示要通过view。能给我解释下不?
离线kimtaikee

只看该作者 8楼 发表于: 2012-05-17
回 7楼(ihatecoding) 的帖子
我觉得你还是自己看看文档,Googling 吧!

离线ihatecoding
只看该作者 9楼 发表于: 2012-05-18
回 8楼(kimtaikee) 的帖子
QGraphicsWidget的资料太少,你做过类似视图管理么?只有通过构造函数才能将QGraphicsWidget绑定到item里,这样太浪费资源了。不管 怎样谢谢你~
快速回复
限100 字节
 
上一个 下一个