问题标签 [qlistview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qt - 如何使用 Qt 的 Model-View 编程
我试图在 QListView 中显示一些卡片,但我真的很难理解如何使用 Qt 的模型/视图模式,而且我找不到任何简单的例子。
基本上,我有两个课程:
卡 - 我的“模型”,其中包含卡的名称、ID 等。
CardWidget - 可以加载和渲染卡片对象(显示卡片名称和其他信息)
那么如何使用 Card 和 CardWidget 将卡片列表显示到 ListView 中呢?我是否需要对我的类进行一些更改,或者 QListView 是否应该能够直接显示它们?
如果有人可以向我展示基本步骤或指出正确的方向,那将是完美的。
qt - qt - QAbstractItemView 和 [垂直/水平]ScrollMode
QAbstractItemView 具有垂直和水平滚动模型的设置器/获取器。可能的值为:ScrollPerItem
和ScrollPerPixel
。
我将 QListView 与自定义模型一起使用。问题是更改垂直滚动模式不会影响滚动内容的方式。视图位于QListView::IconMode
. 看起来滚动是按像素完成的。但是由于鼠标滚轮的点击,它实际上是按固定像素批次滚动的,这与项目的大小无关——即使在 ScrollPerItem 模式下也是如此。
我需要滚动每个项目 - 每次滚轮点击都应该滚动到下一行项目,无论项目的大小是多少。是否可以使用默认的 QListView 实现?
qt - 如何在 QListView 中选择一行
我仍在努力使用 QListView,我试图在视图中选择一个特定的行,但我无法弄清楚如何做到这一点。
我在 StackOverflow 上发现了一个类似的问题,它建议使用createIndex()
模型的方法,但是这种方法是受保护的(也许它曾经是公共的,但现在不再是),所以这对我不起作用。有什么建议吗?
qt - 移除 QListView 背景
我想删除我的 QListView 的背景,以便可以看到下面的背景。我怎样才能做到这一点?
我试过了setAttribute(Qt::WA_NoSystemBackground)
,setAttribute(Qt::WA_NoBackground)
但这并没有改变任何东西。我也不能覆盖paintEvent()
,否则它不会绘制项目。
任何的想法?
qt - 如何在 QListView 中获取选定的项目委托
我想在我的 QListView 上实现拖放,所以我想获得选定的项目委托。我怎样才能做到这一点?
qt - Qt:使用 QListView 和 QFileSystemModel 浏览文件系统。如何突出显示文件夹中的第一项?
我正在一个没有键盘/鼠标的系统上做主题所说的事情,所以我需要“从代码”中完成这项工作。当我更改 QListView 的 RootIndex 时,我想突出显示第一行。
这是我制作的一个小型测试项目的 mainwindow.cpp:
在这个例子中,LightItUp 1-3 做我想做的事,但 LightItUp4 没有。如果我交换 2 和 4 中的文件夹,它们都无法执行我想要的操作,而 1 和 3 仍然可以工作。我怀疑我对如何使用这个模型/视图有误解,但不知道是什么。
编辑:创建了一个更简单的示例,其中提到了@buck 的错误检查。请参阅源代码中的注释。
我认为当我在模型上执行 setRootPath(rp),然后将视图设置为使用模型时,如果我正确设置索引,视图应该能够在 rp 的所有子文件夹中移动。我将重读关于 Model/View、QListView 和 QFileSystemModel 的 Qtdocs,但我想发布这个以防有人了解正在发生的事情。
scroll - 在 QListView(或 QAbstractItemView)中平滑滚动
我有一个显示方形项目的 QListView。我的问题是,当我滚动此列表时,它一次滚动一整行正方形,我认为这看起来不正确。相反,我希望列表一次滚动 1 或 2 个像素 - 即平滑。这主要是外观上的改变。知道我会怎么做吗?
qt - Qt 禁止声明没有类型的 QListView
我的 Qt 项目中有一个非常奇怪的错误。这是代码,main_window.h:
这是main_window.cpp:
我无法理解的问题在 QListView 中,我没有在我的项目中使用它。只有 QListWidget,但是当我尝试构建项目时,会出现以下错误:
qlistview.h:194:错误:ISO C++ 禁止声明没有类型的“QListView”
qlistview.h:194: 错误:在 '&' 标记之前需要 ',' 或 '...'
还有以下奇怪的错误:
qlistwidget.h:308:错误:没有在类“QListWidget”中声明的“void QListWidget::removeItemWidget(QListWidgetItem)”成员函数*
qlistwidget.h:311:错误:没有在类“QListWidget”中声明的“void QListWidget::addItem(QListWidgetItem)”成员函数*
qlistwidget.h:314:错误:没有在类“QListWidget”中声明的“QListWidgetItem QListWidget::itemAt(int, int) const”成员函数*
等等
提前致谢。
UPD:我在 Windows 7 上使用 QtCreator 2.2.1。
UPD2:Qt 版本是 4.7.1。
UPD3:完整的输出
list - 带列的 QList
有谁知道用列创建 QlistView 或 QListWidget 的简单方法?
我所需要的只是一个包含 2 列不可删除且可排序的列表。
c++ - Qt - 我自己的自定义对象的 QListView
我正在编写一个应用程序来监视从传感器阵列返回的各种信息。
简单地说,我有一个传感器类(以下称为“传感器类”),并且我有一个模型类来维护这个传感器类的 QList。
此 QList 由模型类动态创建 - 当它从不在 QList 中的传感器获取数据时,它会创建 Sensor Class 的新实例并将其添加到 QList。
我现在想在我的视图中使用 QListView 显示这个列表。我真的只是在 Qt 中处理模型/视图的东西,我不确定如何继续。
我是否需要将我的模型类子类化为 QAbstractListModel,然后可以将其设置为 QListView 的模型?
任何人都有这方面的好例子或关于如何构建我的模型的指针?