问题标签 [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.

0 投票
1 回答
282 浏览

c++ - QListWidgetItem 指针导致程序崩溃

在我的程序中,我有一系列选项卡,每个选项卡都有一个组合框和QListWidget. 我正在尝试QListWidget通过 type 的指针读取项目的状态QListWidgetItem。程序在代码的这一点崩溃。我确定程序在这里崩溃,因为我用断点仔细检查了它。

这是我的代码;

程序在此块崩溃;

这可能是因为指针listItem指向无效位置或NULL. 我该如何解决这个问题?我编码错了吗?

0 投票
1 回答
571 浏览

c++ - 按文本内容删除 QListWidget 项

我需要通过文本内容删除一个 qlistwidget 项目

我试过了:

...和各种排列,但我错过了一些东西。上面的代码编译,但不会从 qlistwidget 中删除项目。

0 投票
1 回答
1204 浏览

python - 在 QListWidget 中一次获取一项

我有一个 QListWidget 和一个 QPushButton。假设我的 QListWidget 包含如下:

  • 苹果
  • 香蕉

我正在尝试实现每次 QPushButton 单击都会返回列表中单个项目的名称。例如。

  • 第一次单击将返回我“苹果”,
  • 第二次点击将返回我'梨',
  • ...
  • 第五次点击将返回我“熊”
  • 在第六次点击时,它应该再次返回我“苹果”而不是结束迭代

目前,我只能使用以下代码返回 QListWiget 中的所有 5 个项目:

我尝试使用for item in items:...,每当我单击按钮时,它仍会返回所有 5 个项目。

我应该如何实现这一目标?

0 投票
1 回答
472 浏览

c++ - QListWidget 不发出信号 itemEntered(QListWidgetItem*)

在我的程序中,QListWidget 用在三个以上的地方。只有一处,QListWidget 没有发出信号 itemEntered(QListWidgetItem*)。

我的代码:

当我调试并移动鼠标滑动项目时,程序无法进入 slotOnItemEntered(...) 函数。我想知道,什么情况会导致这种现象。

0 投票
1 回答
716 浏览

c++ - 当用户选择一个项目时 QListWidget 会发生变化

我有一个特殊的问题。我有一个 1000 QListWidgetItem 的 QListWidget。我有一个搜索文本框,只要有人开始输入它就会触发以下代码。

最终结果是,一旦我执行了搜索,我将拥有一个隐藏 600 个项目并显示 400 个的 QListWidget。每当我单击一个项目时,整个列表只会向下跳几行,因此我的选择甚至在屏幕上都不可见。

我已经确认似乎是 setHidden 造成的。如果我只是突出显示找到的行,而不隐藏/显示项目,则选择不会导致列表向下滚动。

因此,我想知道我错过了什么?我调用哪个函数来确保我的 QListWidget 在我选择一个项目时不会移动?

下面的工作示例:

我基本上已将问题复制并隔离为水平滚动条。在我的原始应用程序和这个 mcve 中,如果您选择一个项目(例如在索引 314 处),列表将跳下。但是,如果我将列表大小调整为没有水平滚动条,则它不会移动。

所以现在我知道问题出在水平滚动条上,我仍然不确定如何防止跳跃发生。

更新:

我曾尝试这样使用 SIGNAL-SLOT:

我还尝试创建自己的插槽,我明确指定该项目应该是可见的:

但是,它仍然跳下并消失在视线之外!如果我将 ScrollHint 设置为PositionAtCenter! 但是,从用户体验的角度来看,每次单击某个项目时都让列表移动并不是一种理想的行为(即使该项目现在位于屏幕的中心)。我还有其他选择吗?

0 投票
1 回答
875 浏览

c++ - QListWidget 水平滚动条导致选择消失

我以前问过这个问题,一个很棒的人引导我为这个问题找到了一个体面的解决方法。但是,我希望看看是否有更好的解决方案。一个实际上完全防止我的 QListWidget 发生任何变化的方法。

工作演示示例

ListDemo 压缩文件 http://nexrem.com/test/ListDemo.zip

ListDemo cpp 代码

问题: 每当我有一个带有水平滚动条和隐藏行的 QListWidget 时,我都会得到一个不受欢迎的行为,即每当用户单击一个项目时,它就会从视图中消失,并且整个列表会向下移动。在上面的示例中,我隐藏了每隔一行,以演示这种行为。

解决方法: 解决方法是有一个信号槽连接,强制将所选项目滚动回视图并定位在中心。请注意,我必须使用PositionAtCenterasEnsureVisible不起作用。它认为该项目在视线之外时是可见的。这种解决方法是可以接受的;但是,当您的选择被强制定位在中心时,会出现明显的“跳跃”。这是不希望的副作用。

在这一点上,我不确定这是否是一个 QT 错误(我不认为有水平滚动条会迫使您的选择不可见)或者我的代码缺少一些重要的东西。

修复: 根据@GM 的评论,缺少的​​只是myListWidget->setAutoScroll(false);

0 投票
2 回答
4078 浏览

c++ - 删除 QListWidgetItem:QListWidget::takeItem(item) vs delete item

要从 a 中删除给定QListWidgetItem* item的,QListWidget* lst我可以使用以下代码(取自此答案):

另一方面,如果我只是销毁该项目,它也会从列表中删除(至少它从列表中消失QListWidget

QListWidget文档表明使用takeItem但没有提及有关删除该项目的任何内容(QListWidgetItem也没有任何信息)。

要从列表中删除项目,请使用 takeItem()。

takeItem使用方法1(然后删除它)和方法2(直接删除项目)有什么区别吗?也许我错过了内存泄漏、未发出的信号等?我的意思是,删除该项目(当然,如果你有的话)似乎比搜索它更容易。

0 投票
1 回答
673 浏览

qt - 如何使用 currentItemChanged 信号在 QListWidget 中获取我的小部件?

我有 QListWidget 指针(pListWidget)。A 有我的自定义(QCustomItem)小部件,从 QWidget 初始化并包含一些数据。我在列表中添加了一些小部件:

这部分代码可能处于循环状态(添加了一些小部件)。

我还检测到通过连接更改的项目:

和插槽实现:

如何从 QListWidget 中提取我的小部件?谢谢!我希望得到你的帮助!

0 投票
0 回答
435 浏览

qt - QListView 中的自定义单元格小部件

我们有一个自定义小部件,我们想将其用作 QListView 中的项目(单元格)小部件。而且我们不想使用 QListWidget。那么有什么方法可以将我们的自定义小部件用于 QListView 中的单元格。委托似乎有一个paint() 方法,但是没有方法可以返回我们想要用于单元格的自定义小部件。有人可以帮忙吗?提前致谢。

0 投票
1 回答
1861 浏览

python - 从小部件内部访问 QListWidgetItem

我试图弄清楚如何获得作为 QListWidgetItem 插入到 QListWidget 中的 QWidget,以便能够访问它所属的列表,以便它可以执行以下操作:

  • 增加/减少它在列表中的位置
  • 从列表中删除自身
  • 将信息从它自己的类传递到主类中的函数

我的脚本布局是 main.py,这是 MainWindow 类所在的位置。MainWindow 使用从主 ui 文件生成的类。我也有自定义小部件,它是它自己的类。

图形用户界面示例:

例子

相关代码片段:

主文件

生物倡议对象.py

编辑1:再次澄清,我需要能够使用小部件中的按钮来修改其自身在列表中的位置。该列表是主用户界面的一部分。向上箭头、向下箭头、选择和删除按钮是我试图与课堂之外的事物进行交互的按钮。

他们调用的函数需要能够确定正在调用哪个listItem,能够修改列表。

例如,如果我单击删除,则它需要知道要删除列表中的哪个项目。所以它首先需要知道列表是什么,然后它需要知道它是什么项目。我不确定如何访问占用该列表项的小部件实例。我也不确定如何根据从该列表项的类中按下按钮来获取该列表项。

编辑 2:根据第一个答案,我尝试将其应用到我的代码中。

main.py 添加了以下功能

bio_initiative_object.py 在 InitCreatureObject 类中添加了以下内容

项目仍未通过。父对象似乎是正确的,但是当我得到该行时,它总是显示-1。