前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分享QListWidget水平滑动示例

分享QListWidget水平滑动示例

作者头像
Qt君
发布2019-08-29 16:21:05
3.5K0
发布2019-08-29 16:21:05
举报
文章被收录于专栏:跟Qt君学编程跟Qt君学编程

本文介绍利用QListWidget和QSS样式表制作的一个水平滑动列表的示例。

实现

  • 基于QListWidget实现
代码语言:javascript
复制
QListWidget *view = new QListWidget;
  • 设置为列表显示模式
代码语言:javascript
复制
view->setViewMode(QListView::ListMode);
  • 设置列表从左往右排列
代码语言:javascript
复制
view->setFlow(QListView::LeftToRight);
  • 屏蔽水平与垂直的滑动条
代码语言:javascript
复制
view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); 
  • 设置为像素滚动
代码语言:javascript
复制
view->setHorizontalScrollMode(QListWidget::ScrollPerPixel);
  • 设置鼠标左键拖动
代码语言:javascript
复制
QScroller::grabGesture(view,QScroller::LeftMouseButtonGesture);
  • 装载列表数据
代码语言:javascript
复制
for (int i = 0; i < 10; i++) {
    QListWidgetItem *item = new QListWidgetItem(QString::number(i));
    /* 设置文字居中 */
    item->setTextAlignment(Qt::AlignCenter);
    view->addItem(item);
}
  • 设置样式
代码语言:javascript
复制
view->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; }
                    )");
  • 最后显示
代码语言:javascript
复制
view->show();

完整代码

代码语言:javascript
复制
#include <QApplication>
#include <QListWidget>
#include <QStringListModel>
#include <QScroller>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QListWidget *view = new QListWidget;
    view->setWindowTitle(QString::fromLocal8Bit("ListWidget by Qt君"));
    view->resize(QSize(350, 50));

    /* 设置为列表显示模式 */
    view->setViewMode(QListView::ListMode);

    /* 从左往右排列 */
    view->setFlow(QListView::LeftToRight);

    /* 屏蔽水平滑动条 */
    view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

    /* 屏蔽垂直滑动条 */
    view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

    /* 设置为像素滚动 */
    view->setHorizontalScrollMode(QListWidget::ScrollPerPixel);

    /* 设置鼠标左键拖动 */
    QScroller::grabGesture(view,QScroller::LeftMouseButtonGesture);

    /* 装载数据 */
    for (int i = 0; i < 10; i++) {
        QListWidgetItem *item = new QListWidgetItem(QString::number(i));
        /* 设置文字居中 */
        item->setTextAlignment(Qt::AlignCenter);
        view->addItem(item);
    }

    /* 设置样式 */
    view->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; }
                        )");
    view->show();

    return a.exec();
}

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Qt君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 完整代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档