找回密码
 立即注册

如何使qlistview的item自适应大小

发表于 2018-5-14 14:09:15 | 显示全部楼层 |阅读模式
2Qter豆
QListview
viewMode = IconMode
resizeMode = Adjust
拖拽时窗口改变Listview的大小,怎么让item适应QListview的大小?

当listview给item自动排序的时候,不希望右边留那么大块空白 ,求指导!

回复

使用道具 举报

发表于 2018-5-14 17:41:49 | 显示全部楼层
Delegate 的大小你是怎么设置的?
回复

使用道具 举报

 楼主| 发表于 2018-5-14 21:36:06 | 显示全部楼层
Since 发表于 2018-5-14 17:41
Delegate 的大小你是怎么设置的?

我没有设置delegate只有icon和文字
回复

使用道具 举报

发表于 2018-5-15 09:06:14 | 显示全部楼层
也许你可以截一下代码和效果图~
回复

使用道具 举报

发表于 2018-5-15 10:07:22 | 显示全部楼层
本帖最后由 Mx_剡葉 于 2018-5-15 10:13 编辑

我说说我自己的做法
我是在QListWidget里添加自定义的item,item有个按钮,点击会隐藏/显示一个评论框(setLayoutSizeConstraint   setFixedSize)
一开始缩放窗口时item总填不满listwidget,但最后试出了方法:
        auto *item = new QListWidgetItem(listWidget);
        auto *widget = new G_Msg_Widget(item,listWidget);
        connect(listWidget,&GListWidget::signal_resize,widget,&G_Msg_Widget::slot_resize);
        listWidget->setItemWidget(item,widget);
我把item指针传给G_Msg_Widget去操作.

GListWidget是继承QListWidget,在resizeEvent里发送了个信号.
G_Msg_Widget是自定义的item,在slot_resize和resizeEvent里都加上:
    setFixedSize(parentWidget()->width(),height());
    item->setSizeHint(QSize(parentWidget()->width(),height()));
希望对你有所帮助
回复

使用道具 举报

 楼主| 发表于 2018-5-15 10:37:42 | 显示全部楼层
Since 发表于 2018-5-15 09:06
也许你可以截一下代码和效果图~

目前的效果:


想要实现的效果:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

 楼主| 发表于 2018-5-15 10:38:57 | 显示全部楼层
Mx_剡葉 发表于 2018-5-15 10:07
我说说我自己的做法
我是在QListWidget里添加自定义的item,item有个按钮,点击会隐藏/显示一个评论框(setLay ...

可以发下你的demo么?
回复

使用道具 举报

发表于 2018-5-15 11:05:42 | 显示全部楼层
窗体变大
原窗体



就是列个数不变,icon 大小不变,修改间距,你要这样的效果?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

 楼主| 发表于 2018-5-15 11:09:20 | 显示全部楼层
本帖最后由 遗忘在角落 于 2018-5-15 11:13 编辑
Since 发表于 2018-5-15 11:05
窗体变大
原窗体

效果差不多,但是是按照一定比例进行缩放排列
回复

使用道具 举报

发表于 2018-5-15 13:39:31 | 显示全部楼层

那你试试吧!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

12下一页

遗忘在角落

    主题

    帖子

    16

    积分

    Qter1级会员

    Rank: 1

    积分
    16

Qter1级会员

发私信

Qt开源社区——开源 共享 自由

微信扫一扫
查看精品教程!