求个继承QTreeWidgetItem 的菜鸟问题?

louis_liux 2019-03-27 01:14:22
.h文件

#include <QTreeWidgetItem>

class GGUiTreeWidgetItem : public QTreeWidgetItem
{
Q_OBJECT

public:
GGUiTreeWidgetItem(QWidget *parent);
~GGUiTreeWidgetItem();

private:

};

.cpp文件

#include "GGUiTreeWidgetItem.h"

GGUiTreeWidgetItem::GGUiTreeWidgetItem(QWidget *parent)
: QTreeWidgetItem(parent)
{

}

GGUiTreeWidgetItem::~GGUiTreeWidgetItem()
{

}
编译报错,求大神指点
1>GGUiTreeWidgetItem.cpp(5): error C2664: “QTreeWidgetItem::QTreeWidgetItem(int)”: 不能将参数 1 从“QWidget *”转换为“int”
1> 没有使该转换得以执行的上下文
...全文
650 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
五里之南 2019-03-28
  • 打赏
  • 举报
回复
关于如何在item中存储自定义数据,可以给你一点参考思路: 存储数据: mdata *data = new mdata(); QTreeWidgetItem *item = new QTreeWidgetItem(); QVariant value = QVariant::fromValue((void *)data); item->setData(0, Qt::UserRole+1, value); 读取数据: QVariant value = item->data(0, Qt::UserRole+1); mdata*data = (mdata*)value.value<void *>();
kerwin liu 2019-03-27
  • 打赏
  • 举报
回复
引用 4 楼 louis_liux 的回复:
[quote=引用 3 楼 liuyinggui163 的回复:] 查看QTreeWidgetItem的帮助文档,你会发现有如下构造函数 QTreeWidgetItem(int type = Type) QTreeWidgetItem(const QStringList & strings, int type = Type) QTreeWidgetItem(QTreeWidget * parent, int type = Type) QTreeWidgetItem(QTreeWidget * parent, const QStringList & strings, int type = Type) 那问题就明了了,为什么会出现你编译报错的问题。 你可以如下修改,增加默认类型
GGUiTreeWidgetItem::GGUiTreeWidgetItem(QTreeWidget *parent)
: QTreeWidgetItem(parent,	QTreeWidgetItem::Type){
}
或者说 QTreeWidgetItem 存入自定义指针该如何操作呢 这种数据 void* m_pData; [/quote] 非常抱歉,关于上述的回答有误。 QTreeWidgetItem 不是继承自QObject的。所以不用加Q_OBJECT。你的编译错误与此次有关。 如果把那个Q_OBJECT宏去掉后,可以运行,不是我说的重载引起的二义性。
louis_liux 2019-03-27
  • 打赏
  • 举报
回复
引用 3 楼 liuyinggui163 的回复:
查看QTreeWidgetItem的帮助文档,你会发现有如下构造函数 QTreeWidgetItem(int type = Type) QTreeWidgetItem(const QStringList & strings, int type = Type) QTreeWidgetItem(QTreeWidget * parent, int type = Type) QTreeWidgetItem(QTreeWidget * parent, const QStringList & strings, int type = Type) 那问题就明了了,为什么会出现你编译报错的问题。 你可以如下修改,增加默认类型
GGUiTreeWidgetItem::GGUiTreeWidgetItem(QTreeWidget *parent)
: QTreeWidgetItem(parent,	QTreeWidgetItem::Type){
}
或者说 QTreeWidgetItem 存入自定义指针该如何操作呢 这种数据 void* m_pData;
kerwin liu 2019-03-27
  • 打赏
  • 举报
回复
查看QTreeWidgetItem的帮助文档,你会发现有如下构造函数
QTreeWidgetItem(int type = Type)
QTreeWidgetItem(const QStringList & strings, int type = Type)
QTreeWidgetItem(QTreeWidget * parent, int type = Type)
QTreeWidgetItem(QTreeWidget * parent, const QStringList & strings, int type = Type)
那问题就明了了,为什么会出现你编译报错的问题。
你可以如下修改,增加默认类型
GGUiTreeWidgetItem::GGUiTreeWidgetItem(QTreeWidget *parent)
: QTreeWidgetItem(parent, QTreeWidgetItem::Type){
}
puthon 2019-03-27
  • 打赏
  • 举报
回复
感觉是不是QWidget的问题,应该是QTreeWidget吧,你在试一下 .cpp file:

#include "gguitreewidgetitem.h"

GGUiTreeWidgetItem::GGUiTreeWidgetItem(QTreeWidget *parent)
: QTreeWidgetItem(parent){
}
GGUiTreeWidgetItem::~GGUiTreeWidgetItem()
{
}
louis_liux 2019-03-27
  • 打赏
  • 举报
回复
或者说 QTreeWidgetItem 存入自定义指针该如何操作呢 这种数据 void* m_pData;

16,212

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧