QT中的QListWidget鼠标按下事件为什么无法获取到当前按下Item

QT中的QListWidget鼠标按下事件为什么无法获取到当前按下Item,第1张

解决方法 1:

鼠标点中一项时,QListWidget会发出这信号的,可以用

void currentItemChanged ( QListWidgetItem current, QListWidgetItem previous )

void currentRowChanged ( int currentRow )

void currentTextChanged ( const QString & currentText )

void itemActivated ( QListWidgetItem item )

void itemChanged ( QListWidgetItem item )

void itemClicked ( QListWidgetItem item )

void itemDoubleClicked ( QListWidgetItem item )

void itemEntered ( QListWidgetItem item )

void itemPressed ( QListWidgetItem item )

void itemSelectionChanged ()

转载,仅供参考。

这些信号来取得当前点了哪一项,具体看文档,

如果你设置图标的大小超过300200,那么一句代码:

ui->myQListWidget->setIconSize(QSize(300,200));

就会把所有行的图标都设置成300200

如果你的图标不够大,那么只会显示各自图标的最大尺寸。

你的图标尺寸够大不?

创建一个QListWidget的对象listWidget

设置QComboBox的Model和View, 即使用setModel(listWidgetmodel())和setView(listWIdget)

自定义一个下拉项ItemWidget, 把你项目需要的下拉项设计出来

把自定义的下拉项ItemWidget加到listWidget中, 即使用setItemWidget();

Qt提供了两种方法来重写ListWidget的显示功能:一种是使用QListWidgetItem的setData()函数,另一种是使用QAbstractItemDelegate的paint()函数。

使用setData()函数,可以设置ListWidgetItem的每一项的显示内容,它接受两个参数:一个是用来指定显示内容的角色,另一个是用来指定显示内容的值。可以使用不同的角色和值来控制ListWidgetItem的显示内容,比如可以使用Qt::DisplayRole来指定显示文本,使用Qt::DecorationRole来指定显示图标等。

使用QAbstractItemDelegate的paint()函数,可以实现更加灵活的ListWidgetItem显示功能,它接受三个参数:一个是用来指定ListWidgetItem的位置和大小,一个是用来指定ListWidgetItem的样式,一个是用来指定ListWidgetItem的数据。可以使用这些参数来绘制ListWidgetItem,比如可以使用QPainter绘制文本,使用QIcon绘制图标等。

以上就是关于QT中的QListWidget鼠标按下事件为什么无法获取到当前按下Item全部的内容,包括:QT中的QListWidget鼠标按下事件为什么无法获取到当前按下Item、QT如何放大图标的大小、QT如何实现自定义下拉列表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9568206.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存