QListWidget::setItemWidget的问题

Marcelxx 2014-09-18 07:18:37
对于标准控件,效果正常,代码及效果图:
代码:

QListWidget *widget = new QListWidget;
for(int i = 0;i<10;i++)
{
QListWidgetItem *item = new QListWidgetItem("a",NULL);
QComboBox *box = new QComboBox();
box->addItems(QStringList()<<"1"<<"2");
widget->addItem(item);
widget->setItemWidget(item,box);
}
widget->show();

效果图:

自定义控件:
代码:

QListWidget *listWidget = new QListWidget;
for(int i = 0;i<10;i++)
{
BuddyItem *buddyItem = new BuddyItem;
buddyItem->setBuddyInfo(info);
QListWidgetItem *item = new QListWidgetItem("Item",listWidget);
listWidget->setItemWidget(item,buddyItem);
}

listWidget->show();

效果图:


问题有两个:
第一,自定义控件挤在了一起,自定义控件的高度固定为56;
第二,在自定义控件的背后能明显看到QListWidgetItem,使用了setItemWidget()不知道为什么两个都添加到了QListWidget上了。

不知道怎么解决???
...全文
4780 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Willib 2016-03-03
  • 打赏
  • 举报
回复
我也碰到了这个问题,不过参照这里@xiachm 的回答解决了,3Q,http://bbs.csdn.net/topics/390257159
Creator_莫言 2015-06-11
  • 打赏
  • 举报
回复

        QListWidgetItem *p = new QListWidgetItem(net->listWidget);
        p->setSizeHint(QSize(320,30));

        CListWidgetItem *item = new CListWidgetItem(320,30,this);
        net->listWidget->addItem(p);
        net->listWidget->setItemWidget(p,item);
上面是我使用的部分代码,CListWidgetItem里面是2张图片,你可以参考下
邶风 2015-06-10
  • 打赏
  • 举报
回复
怎么没调用addItem函数
ganhuanghuang 2015-03-10
  • 打赏
  • 举报
回复
QListWidgetItem::setSizeHint
JJHUANG0 2014-11-18
  • 打赏
  • 举报
回复
可能是你的BuddyItem界面布局有问题

21,466

社区成员

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

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