问题标签 [pyqt6]

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 回答
43 浏览

python - QGraphicsTextItem 没有更新分数

我想在pyqt中构建一个简单的游戏,我想当敌人与子弹碰撞时增加分数,我创建了一个从QGraphicsTextItem扩展的Score类,我创建了分数文本我还添加了一个增加方法。之后我在我的 Bullet.py 文件中添加了这个类,因为在 Bullet.py 发生碰撞时,我也在我的 Window.py 文件中添加了这个类,因为我希望那个文本应该在场景中,但是当我运行游戏得分为0,碰撞后没有任何反应,这些是我的文件

窗口.py

播放器.py

敌人.py

子弹.py

这是我的 Score.py 文件

0 投票
1 回答
282 浏览

python - 如何在没有 qrc 系统的 pyqt6 中设置背景图像

我对 PyQt6 和 PySide6 中的资源系统有疑问。首先为什么 PySide6 仍然支持 qrc 系统而 PyQt6 不支持。其次,如何在 PyQt6 中使用图像作为小部件的背景,我看到了 addSearchPath() 和 setSearchPath() 的概念,但我不明白如何使用它并且它不起作用。

0 投票
0 回答
35 浏览

python - PyQt6 - 如何合并 QTreeWidgetItems?

我在 Python 3.9.6 上使用 PyQt6。

我有一个看起来像这样的三层 QTreeWidget:

其中,每个顶级项和二级项都保证有子项,除非三级项被删除,并且三级项永远不会有子项。

我有一个修改填充树的数据的函数,它可以重命名显示的字段,我希望树反映对数据的更改并合并父级。

QTreeWidgetItems的标识如下: tree.topLevelItem(a).child(b).child(c)其中a和是自然数。bc

给定 QTreeWidgetItem 的字段,我有一种方法可以确定任何项目的索引。

例如,如果树包含上述数据,输入[A0]和函数返回[0],并且:

数据对应三级项,每个三级项对应一个列表,父项存在是为了对项进行分组。

例如,将生成上述树的数据:

变量都是字符串。

现在,如果我想替换 A1 的所有实例,其中 A1 位于索引 1 并且索引 0 处的元素是 A0,我希望树看起来像这样:

然后,如果我用 B0 替换索引 0 处所有出现的 A0,树应该如下所示:

我的想法是使用tree.topLevelItem(a).child(b)获取需要删除的项目,然后使用[item.child(i) for i in range(item.childCount())]获取第三级项目(如果结果列表的元素有孩子,则重复列表组合一次),然后进行一些操作以进行修改数据,然后创建节点并.addChild()在需要修改的项目上使用,最后sip.delete()在需要删除的项目上使用。

本质上,要实现上述两个步骤,代码基本上做了以下工作:

当然,代码是不完整的,没有功能的,它不包括条件语句和类定义等,那是因为我试图让我的例子尽可能地小,尽管你确实明白我的代码背后的想法.

我想知道,什么是更优雅和更有效的解决方案来实现相同的结果,我已经谷歌搜索了几天,但又找不到任何有用的东西,这就是我在这里问的原因。

0 投票
1 回答
141 浏览

python - 发出 layoutChanged 时 QTreeView 的模型崩溃

我正在尝试编写一个模型(QAbstractItemModel子类)来将数据填充到 QTreeView 中。我需要这些项目是可检查的,并希望稍后过滤掉所有未检查的内容。为了在过滤处于活动状态时正确隐藏未选中的项目,我需要layoutChanged在我的setData方法中发出。然而,这一信号(与 结合使用layoutAboutToBeChanged)会在检查项目时导致不可预知的崩溃。我将其缩小到以下代码示例,我知道在检查项目时可以防止崩溃的两件事:

  1. 去除QSortFilterProxyModel
  2. 不发出layoutChanged信号

尽管如此,两者对我的过滤都是至关重要的(我从示例代码中取出,因为它太多了)。要重现,您只需选择一个项目并按空格键 - 很快应用程序就会崩溃。有人看到我的模型有什么问题吗?我已经QtModelTester从 pytest-qt 中检查过了——没关系。

0 投票
0 回答
34 浏览

python - 尝试将 SCN_MODIFIED 与 pyqt6 一起使用会产生 TypeError 崩溃

我有一个简单的编辑器,我正在尝试移植到 PyQt6,但遇到了文档修改消息的问题。它在 PyQt5 中运行良好,但在 PyQt6 中生成'TypeError: unable to convert a QVariant back to a Python object'消息。

运行代码并在 PyQt5 中输入 abc 会生成以下输出

我在 linux 我使用的软件包版本

0 投票
1 回答
63 浏览

python - 关闭子窗口 Python PyQt6 后尝试更新 QTableView

setModel我需要在关闭子窗口后使用父窗口中的方法自动触发刷新 QTableView 。子窗口将数据插入到 sqlite 数据库中。子窗口中的代码片段:

代码父窗口的片段:

0 投票
1 回答
25 浏览

python - 当两个小部件动画命令在开始时运行时,只有一个被动画化

我正在尝试通过将最大宽度设置为零来隐藏两个列表小部件,然后通过两个按钮来切换每个小部件以显示和消失,这工作正常,但不是在开始时,只有两个小部件中的一个被动画化,另一个只是保持打开状态,但是当按钮发出信号时,相同的命令可以正常工作。

请提出是否有更好的方法来达到相同的效果或背后的原因。

0 投票
1 回答
227 浏览

python - QSqlRelationalDelegate 显示 foreign_key - 相关记录的 id,而不是 Combobox 中的名称/值

我正在尝试添加QSqlRelationalModelQTableView.

我在模型中设置了适当的QSqlRelationalDelegate和适当QSqlRelations的。显示数据库中的现有数据工作正常。具有相关数据的列更改为组合框,我可以从相关表中选择选项。

但是,当我尝试通过向模型添加一行来创建新记录时,组合框允许我从下拉列表中选择正确的值,但是在选择它之后,该值会更改为相关记录的 ID,就好像没有关系委托已设置。

主.py

数据库

这个问题可能与一个6 岁未回答的问题有关

0 投票
0 回答
250 浏览

python - 我可以在 Qt 中的 app.exec() 之后运行一个函数吗?

之后可以执行功能sys.exec()吗?

当我的程序启动时,它有一个从服务器检索数据的劳动密集型过程program.update_data()。这个过程应该在程序执行时开始,我想显示一个加载栏小部件(因为它需要它的信息QDialog()而创建)。program.update_data()

我遇到的问题是,如果我足够早地启动加载栏,因为那是在我调用之前sys.exec(),我的 Widget 无法正常工作。

有没有办法在我调用之后sys.exec()或可能启动program.update()函数时执行代码sys.exec(),比如我的类中的触发器program(目前是 的子类QMainWindow

0 投票
1 回答
76 浏览

python - 将鼠标悬停在 QLabel 中时,如何临时更改链接的颜色?

我想要以下行为:

示例图像

我已经尝试过了,但是它使链接无法使用,并且仅当鼠标位于非常特定的位置时才会发生颜色变化:

不确定这是否可能。