问题标签 [qlistwidgetitem]
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.
c++ - QListWidgetItem 指针导致程序崩溃
在我的程序中,我有一系列选项卡,每个选项卡都有一个组合框和QListWidget
. 我正在尝试QListWidget
通过 type 的指针读取项目的状态QListWidgetItem
。程序在代码的这一点崩溃。我确定程序在这里崩溃,因为我用断点仔细检查了它。
这是我的代码;
程序在此块崩溃;
这可能是因为指针listItem
指向无效位置或NULL
. 我该如何解决这个问题?我编码错了吗?
c++ - 按文本内容删除 QListWidget 项
我需要通过文本内容删除一个 qlistwidget 项目
我试过了:
...和各种排列,但我错过了一些东西。上面的代码编译,但不会从 qlistwidget 中删除项目。
python - 在 QListWidget 中一次获取一项
我有一个 QListWidget 和一个 QPushButton。假设我的 QListWidget 包含如下:
- 苹果
- 梨
- 香蕉
- 桃
- 熊
我正在尝试实现每次 QPushButton 单击都会返回列表中单个项目的名称。例如。
- 第一次单击将返回我“苹果”,
- 第二次点击将返回我'梨',
- ...
- 第五次点击将返回我“熊”
- 在第六次点击时,它应该再次返回我“苹果”而不是结束迭代
目前,我只能使用以下代码返回 QListWiget 中的所有 5 个项目:
我尝试使用for item in items:...
,每当我单击按钮时,它仍会返回所有 5 个项目。
我应该如何实现这一目标?
c++ - QListWidget 不发出信号 itemEntered(QListWidgetItem*)
在我的程序中,QListWidget 用在三个以上的地方。只有一处,QListWidget 没有发出信号 itemEntered(QListWidgetItem*)。
我的代码:
当我调试并移动鼠标滑动项目时,程序无法进入 slotOnItemEntered(...) 函数。我想知道,什么情况会导致这种现象。
c++ - 当用户选择一个项目时 QListWidget 会发生变化
我有一个特殊的问题。我有一个 1000 QListWidgetItem 的 QListWidget。我有一个搜索文本框,只要有人开始输入它就会触发以下代码。
最终结果是,一旦我执行了搜索,我将拥有一个隐藏 600 个项目并显示 400 个的 QListWidget。每当我单击一个项目时,整个列表只会向下跳几行,因此我的选择甚至在屏幕上都不可见。
我已经确认似乎是 setHidden 造成的。如果我只是突出显示找到的行,而不隐藏/显示项目,则选择不会导致列表向下滚动。
因此,我想知道我错过了什么?我调用哪个函数来确保我的 QListWidget 在我选择一个项目时不会移动?
下面的工作示例:
我基本上已将问题复制并隔离为水平滚动条。在我的原始应用程序和这个 mcve 中,如果您选择一个项目(例如在索引 314 处),列表将跳下。但是,如果我将列表大小调整为没有水平滚动条,则它不会移动。
所以现在我知道问题出在水平滚动条上,我仍然不确定如何防止跳跃发生。
更新:
我曾尝试这样使用 SIGNAL-SLOT:
我还尝试创建自己的插槽,我明确指定该项目应该是可见的:
但是,它仍然跳下并消失在视线之外!如果我将 ScrollHint 设置为PositionAtCenter
! 但是,从用户体验的角度来看,每次单击某个项目时都让列表移动并不是一种理想的行为(即使该项目现在位于屏幕的中心)。我还有其他选择吗?
c++ - QListWidget 水平滚动条导致选择消失
我以前问过这个问题,一个很棒的人引导我为这个问题找到了一个体面的解决方法。但是,我希望看看是否有更好的解决方案。一个实际上完全防止我的 QListWidget 发生任何变化的方法。
工作演示示例
ListDemo 压缩文件 http://nexrem.com/test/ListDemo.zip
ListDemo cpp 代码
问题: 每当我有一个带有水平滚动条和隐藏行的 QListWidget 时,我都会得到一个不受欢迎的行为,即每当用户单击一个项目时,它就会从视图中消失,并且整个列表会向下移动。在上面的示例中,我隐藏了每隔一行,以演示这种行为。
解决方法:
解决方法是有一个信号槽连接,强制将所选项目滚动回视图并定位在中心。请注意,我必须使用PositionAtCenter
asEnsureVisible
不起作用。它认为该项目在视线之外时是可见的。这种解决方法是可以接受的;但是,当您的选择被强制定位在中心时,会出现明显的“跳跃”。这是不希望的副作用。
在这一点上,我不确定这是否是一个 QT 错误(我不认为有水平滚动条会迫使您的选择不可见)或者我的代码缺少一些重要的东西。
修复:
根据@GM 的评论,缺少的只是myListWidget->setAutoScroll(false);
c++ - 删除 QListWidgetItem:QListWidget::takeItem(item) vs delete item
要从 a 中删除给定QListWidgetItem* item
的,QListWidget* lst
我可以使用以下代码(取自此答案):
另一方面,如果我只是销毁该项目,它也会从列表中删除(至少它从列表中消失)QListWidget
。
QListWidget
文档表明使用takeItem
但没有提及有关删除该项目的任何内容(QListWidgetItem
也没有任何信息)。
要从列表中删除项目,请使用 takeItem()。
takeItem
使用方法1(然后删除它)和方法2(直接删除项目)有什么区别吗?也许我错过了内存泄漏、未发出的信号等?我的意思是,删除该项目(当然,如果你有的话)似乎比搜索它更容易。
qt - 如何使用 currentItemChanged 信号在 QListWidget 中获取我的小部件?
我有 QListWidget 指针(pListWidget)。A 有我的自定义(QCustomItem)小部件,从 QWidget 初始化并包含一些数据。我在列表中添加了一些小部件:
这部分代码可能处于循环状态(添加了一些小部件)。
我还检测到通过连接更改的项目:
和插槽实现:
如何从 QListWidget 中提取我的小部件?谢谢!我希望得到你的帮助!
qt - QListView 中的自定义单元格小部件
我们有一个自定义小部件,我们想将其用作 QListView 中的项目(单元格)小部件。而且我们不想使用 QListWidget。那么有什么方法可以将我们的自定义小部件用于 QListView 中的单元格。委托似乎有一个paint() 方法,但是没有方法可以返回我们想要用于单元格的自定义小部件。有人可以帮忙吗?提前致谢。
python - 从小部件内部访问 QListWidgetItem
我试图弄清楚如何获得作为 QListWidgetItem 插入到 QListWidget 中的 QWidget,以便能够访问它所属的列表,以便它可以执行以下操作:
- 增加/减少它在列表中的位置
- 从列表中删除自身
- 将信息从它自己的类传递到主类中的函数
我的脚本布局是 main.py,这是 MainWindow 类所在的位置。MainWindow 使用从主 ui 文件生成的类。我也有自定义小部件,它是它自己的类。
图形用户界面示例:
相关代码片段:
主文件
生物倡议对象.py
编辑1:再次澄清,我需要能够使用小部件中的按钮来修改其自身在列表中的位置。该列表是主用户界面的一部分。向上箭头、向下箭头、选择和删除按钮是我试图与课堂之外的事物进行交互的按钮。
他们调用的函数需要能够确定正在调用哪个listItem,能够修改列表。
例如,如果我单击删除,则它需要知道要删除列表中的哪个项目。所以它首先需要知道列表是什么,然后它需要知道它是什么项目。我不确定如何访问占用该列表项的小部件实例。我也不确定如何根据从该列表项的类中按下按钮来获取该列表项。
编辑 2:根据第一个答案,我尝试将其应用到我的代码中。
main.py 添加了以下功能
bio_initiative_object.py 在 InitCreatureObject 类中添加了以下内容
项目仍未通过。父对象似乎是正确的,但是当我得到该行时,它总是显示-1。