添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • 屏蔽 水平与垂直的滑动条
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();
#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();
  • Qt君公众号后台回复"控件"获取更多相关内容。
原文链接:https://blog.csdn.net/nicai_xiaoqinxi/article/details/100077644 演练:操作 Qt 应用中的 QListViewQt 应用中的列表控件——QListView,这篇文章主要介绍了如何通过CukeTest全面自动化该控件。背景需要针对 Qt 的 QListView 组件开发的列表窗口进行操作和自动化测试。QListView 通常用于含有大量可选项的窗口,比如文件列表、清单等等。以下我们对 QListView 控件简称 List。目标为了实现对 List 组... 以上示例展示了如何创建一个 QListWidget 并添加列表项,以及如何获取选中的列表项和删除选中的列表项。你可以根据自己的需求进行进一步的定制和扩展。示例 1:创建一个 QListWidget 并添加列表项。示例 2:获取选中的列表项。示例 3:删除选中的列表项。 通过定时器溢出,令滚轮事件微微滞后达到平滑效果。 定时器溢出是需要时间的,无法立马处理完所有的滚轮事件,所以干脆自己复制一个滚轮事件lastWheelEvent,然后计算每一次滚动需要移动的距离和步数,将这两个参数绑定在一起放入队列中。定时器每次溢出时就将所有未处理完的事件对应的距离累加得到totalDelta,每个未处理事件的步数-1,将 totalDelta 和 lastWheelEvent 作为参数传入QWeelEvent的构造函数,构建出真正需要的滚轮事件e并将其发送到app的事... 所有从QAbstractScrollArea派生的Qt类(qlistwidgetqtablewidget 、qscrollarea等)都可以使用上述方法实现手势触摸支持。直接上代码,以qlistwidget为例。 滚动条方式--最简单的实现方法首先包含头文件QListwidget中关于显示模式的设置参数直接复制以下代码即可实现==横向滚动条==,注意:listWidget_File换成你自己实例化的QListwidget。直接复制以下代码即可实现==竖直滚动条==,注意:listWidget_File换成你自己实例化的QListwidget。因为在网上看到的都是比较复杂的操作,而对于新手来说需要实现的东西都是很简单的,所以随手记录一下笔记方便路过的新手们。 https://blog.csdn.net/nic 在触摸屏上通过 QTableWidget滚动条的进行上下滚动,体验可能并不是很理想。所以如果可以像手机浏览某音的短视频进行上下翻页的效果,可能更符合用户的实际使用方式。 QListWidget继承QListView控件,Qt帮助文档中说 QAbstractItemView::ScrollPerPixel 和QAbstractItemView::ScrollPerItem分别可以实现按item滚动和像数点滚动,但是好像都没效果。还有就是说通过创建QScrollBar有用,但是也没效果。亲测还是这样有用,记录一下,记录一下! 实现QTableView的行拖拽,支持多行选择拖拽,也可根据需要稍作修改实现QTreeView、QListView等的拖拽效果。 拖拽类实现 继承 QTableView 实现几个拖拽相关的方法 TableView.h #ifndef TableView_H #define TableView_H #include <QObject> #include <QListView> #include <QDragEnterEvent> #include <QDragMov