本文主要是写自己在开发工作中对QListWidget的使用心得,该程序主要是为了实现图片资源库管理功能,具体使用QListWidget添加显示图片资源,拖拽列表图片到主窗体进行添加放大显示。注意:主窗体需要实现拖拽进入事件dragEnterEvent,放置事件dropEvent。
#include <QListWidget>
// 资源图片列表
{
// 实例化列表
QListWidget *pListWidget = new QListWidget(this);
// 支持拖拽
pListWidget->setDragEnabled(true);
// 图片显示模式
pListWidget->setViewMode(QListView::IconMode);
// 禁止拖放
pListWidget->setAcceptDrops(false);
// 设置图片大小
pListWidget->setIconSize(QSize(100, 100));
// 禁用光标
pListWidget->setFocusPolicy(Qt::NoFocus);
// 自适应布局
pListWidget->setResizeMode(QListView::Adjust);
// 实例化节点
QListWidgetItem *pItem = new QListWidgetItem;
QPixmap pix("./test.png“);
pItem->setIcon(pix);
// 设置每个图片单元大小
pItem->setSizeHint(QSize(100, 100));
}
void CMainWindow::InitWidget()
{
this->setAcceptDrops(true);
}
// 主窗体开启放置功能
void CMainWindow::dragEnterEvent(QDragEnterEvent *event)
{
event->acceptProposedAction();
}
void CMainWindow::dropEvent(QDropEvent *event)
{
// 放置后获取鼠标位置
QPoint pos(this->cursor().pos());
int x = pos.x();
int y = pos.y();
}