本文介绍利用QListWidget和QSS样式表制作的一个水平滑动列表的示例。
实现
基于
QListWidget
实现1
QListWidget *view = new QListWidget;
设置为列表显示模式
1
view->setViewMode(QListView::ListMode);
设置列表从左往右排列
1
view->setFlow(QListView::LeftToRight);
屏蔽水平与垂直的滑动条
1
2view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);设置为像素滚动
1
view->setHorizontalScrollMode(QListWidget::ScrollPerPixel);
设置鼠标左键拖动
1
QScroller::grabGesture(view,QScroller::LeftMouseButtonGesture);
装载列表数据
1
2
3
4
5
6for (int i = 0; i < 10; i++) {
QListWidgetItem *item = new QListWidgetItem(QString::number(i));
/* 设置文字居中 */
item->setTextAlignment(Qt::AlignCenter);
view->addItem(item);
}设置样式
1
2
3
4
5
6
7view->setStyleSheet(R"(
QListWidget { outline: none; border:1px solid gray; color: black; }
QListWidget::Item { width: 50px; height: 50px; }
QListWidget::Item:hover { background: #4CAF50; color: white; }
QListWidget::item:selected { background: #e7e7e7; color: #f44336; }
QListWidget::item:selected:!active { background: lightgreen; }
)");最后显示
1
view->show();
完整代码
1 |
|
关于更多
- Qt君公众号后台回复”控件“获取更多相关内容。