求QlistWidget横向显示的方法

tt2com 2012-03-19 10:48:40
我现在需要在QListWidget上面只有横向显示的信息。
我使用
QListView::setViewMode(QListView::IconMode);
但如果 QListWidgetItem的量多以一定数后就会出现纵向的排布。

我的问题是:如果只有横向排布,QListWidgetItem量比较大的时候也无纵向排布出现。

我在百度啥查到相似的问题,但一直没知道答案。应该还有人有这样的需求,哪位大侠知道的,指导一下3Q
...全文
2031 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
tt2com 2012-03-19
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 ak47zhangzhiwei 的回复:]
呵呵 学习了, 这个在我这儿可以,我一直这么用!
[/Quote]
一起学习 呵呵
SunFrank1987 2012-03-19
  • 打赏
  • 举报
回复
呵呵 学习了, 这个在我这儿可以,我一直这么用!
tt2com 2012-03-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ak47zhangzhiwei 的回复:]
这句话

m_pListWgt->setMaximumHeight(120);

可以让他不纵向排序 , 适当的根据你的ICON调整这个值
[/Quote]
我也测试下你的,我不知道为啥子,我这真不行
tt2com 2012-03-19
  • 打赏
  • 举报
回复 3
找到解决方法,我查看源码发现的 哈哈哈
m_list[0]->setViewMode(QListView::IconMode);
m_list[0]->setMovement(QListView::Static);

m_list[0]->setWrapping(false);

m_list[0]->setFlow(QListView::LeftToRight);
QListView::IconMode 和 QListView::ListMode一个属性都设置成一样就可以了
谢谢楼上各位
SunFrank1987 2012-03-19
  • 打赏
  • 举报
回复
SunFrank1987 2012-03-19
  • 打赏
  • 举报
回复
这句话

m_pListWgt->setMaximumHeight(120);

可以让他不纵向排序 , 适当的根据你的ICON调整这个值
tt2com 2012-03-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ak47zhangzhiwei 的回复:]
C/C++ code

m_pListWgt = new QListWidget();
m_pListWgt->setSpacing(12);
m_pListWgt->setMaximumHeight(120);
m_pListWgt->setMovement(QListView::Static);
m_pListWgt->setViewMode(QL……
[/Quote]
你吧QListWidgetItem 的数量由5变得20看看。那样就出现纵向排布了
SunFrank1987 2012-03-19
  • 打赏
  • 举报
回复


m_pListWgt = new QListWidget();
m_pListWgt->setSpacing(12);
m_pListWgt->setMaximumHeight(120);
m_pListWgt->setMovement(QListView::Static);
m_pListWgt->setViewMode(QListView::IconMode);
m_pListWgt->setFlow(QListView::TopToBottom);

for (int i = 0; i < 5; i++)
{
QListWidgetItem *item = new QListWidgetItem(QIcon(":/images/time.png"),"Test",m_pListWgt);
item->setData(Qt::ToolTipRole,"Test");
m_pListWgt->addItem(item);
}
tt2com 2012-03-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ak47zhangzhiwei 的回复:]

引用 2 楼 ak47zhangzhiwei 的回复:

C/C++ code

m_plist_members->setViewMode(QListView::IconMode);
m_plist_members->setFlow(QListView::TopToBottom);



试试!


这样可以实现你要的效果啊! Icon在上面,文字在下边
[/Quote]
这个,我这边真的不行。这样会出现纵向排布。
SunFrank1987 2012-03-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ak47zhangzhiwei 的回复:]

C/C++ code

m_plist_members->setViewMode(QListView::IconMode);
m_plist_members->setFlow(QListView::TopToBottom);



试试!
[/Quote]

这样可以实现你要的效果啊! Icon在上面,文字在下边
tt2com 2012-03-19
  • 打赏
  • 举报
回复
找到解决方法,
只使用
setFlow(QListView::LeftToRight);
不用
QListView::setViewMode(QListView::IconMode);
但这样会使得
QListWidgetItem 中的文字说明写在Icon的右边,非常丑 有没办法解决?
xiachm 2012-03-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 tt2com 的回复:]

引用 1 楼 xiachm 的回复:

setFlow(QListView::LeftToRight);

加这句没有效果的。我一开始就试过了。
[/Quote]
不会吧?!在UI设计器里试试,我这边没问题的。
tt2com 2012-03-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xiachm 的回复:]

setFlow(QListView::LeftToRight);
[/Quote]
加这句没有效果的。我一开始就试过了。
SunFrank1987 2012-03-19
  • 打赏
  • 举报
回复

m_plist_members->setViewMode(QListView::IconMode);
m_plist_members->setFlow(QListView::TopToBottom);


试试!
xiachm 2012-03-19
  • 打赏
  • 举报
回复
setFlow(QListView::LeftToRight);

16,216

社区成员

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

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