怎么做自己的网站卖东西,山东省双体系建设网站,学生网页制作教程,大学生电子商务专业网站设计背景#xff1a;
QListWidget中的item#xff0c;可以添加自定义的widget。
但是怎么去调整widget的大小呢#xff1f;
参考#xff1a;QT QListWidget的添加与删除#xff0c;滚动条显示或隐藏#xff0c;判断是否滑到顶部或底部#xff0c;并使QListWidgetItem自适…背景
QListWidget中的item可以添加自定义的widget。
但是怎么去调整widget的大小呢
参考QT QListWidget的添加与删除滚动条显示或隐藏判断是否滑到顶部或底部并使QListWidgetItem自适应大小_qlistwidgetitem自适应高度-CSDN博客
使用如下代码
void listwidgetItem::resize_size()
{adjustSize();if (item ! nullptr) {item-setSizeHint(this-size());}
}
adjustSize()用于调整自定义widget大小。
item是跟自定义widget绑定的QListWidgetItem也需要调整它的大小。
下面就是自定义的widget需要根据不同的字数来自适应不同的高度。
效果 这时候发现下面的绿色QLabel并没有自适应。
很让人困扰。后面问题解决了但我并不理解在此记录一下吧
开启调试模式
void listwidgetItem::resize_size()
{adjustSize();if (item ! nullptr) {item-setSizeHint(this-size());}if (this-name QString::fromLocal8Bit(联想应用商店)) {PRINTF_LOCATION() this-name this-height();PRINTF_LOCATION() sizehint():label_introduce-sizeHint();PRINTF_LOCATION() size():label_introduce-size();}
}
最开始时
d:\work\С????\main\officeassistant_msvc\listwidgetitem.cpp at: 22 : sizehint(): QSize(720, 270)
d:\work\С????\main\officeassistant_msvc\listwidgetitem.cpp at: 23 : size(): QSize(574, 275)
后面拖拽窗体
d:\work\С????\main\officeassistant_msvc\listwidgetitem.cpp at: 22 : sizehint(): QSize(720, 270)
d:\work\С????\main\officeassistant_msvc\listwidgetitem.cpp at: 23 : size(): QSize(1263, 270)
d:\work\С????\main\officeassistant_msvc\listwidgetitem.cpp at: 22 : sizehint(): QSize(720, 270)
d:\work\С????\main\officeassistant_msvc\listwidgetitem.cpp at: 23 : size(): QSize(1263, 270)
可以发现label的sizehint()一直是QSize(720,270)而高度也是270。
解决方法
添加: label_introduce-setFixedWidth(this-width() - 50); void listwidgetItem::resize_size()
{label_introduce-setFixedWidth(this-width() - 50);adjustSize();if (item ! nullptr) {item-setSizeHint(this-size());}if (this-name QString::fromLocal8Bit(联想应用商店)) {PRINTF_LOCATION() this-name this-height();PRINTF_LOCATION() sizehint():label_introduce-sizeHint();PRINTF_LOCATION() size():label_introduce-size();}
} 文本内容有所修改但不影响。
写在最后页面效果已经达到我的预期但中间的过程我有些不太理解在此记录一下吧。