问题标签 [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.
python - QGraphicsTextItem 没有更新分数
我想在pyqt中构建一个简单的游戏,我想当敌人与子弹碰撞时增加分数,我创建了一个从QGraphicsTextItem扩展的Score类,我创建了分数文本我还添加了一个增加方法。之后我在我的 Bullet.py 文件中添加了这个类,因为在 Bullet.py 发生碰撞时,我也在我的 Window.py 文件中添加了这个类,因为我希望那个文本应该在场景中,但是当我运行游戏得分为0,碰撞后没有任何反应,这些是我的文件
窗口.py
播放器.py
敌人.py
子弹.py
这是我的 Score.py 文件
python - 如何在没有 qrc 系统的 pyqt6 中设置背景图像
我对 PyQt6 和 PySide6 中的资源系统有疑问。首先为什么 PySide6 仍然支持 qrc 系统而 PyQt6 不支持。其次,如何在 PyQt6 中使用图像作为小部件的背景,我看到了 addSearchPath() 和 setSearchPath() 的概念,但我不明白如何使用它并且它不起作用。
python - PyQt6 - 如何合并 QTreeWidgetItems?
我在 Python 3.9.6 上使用 PyQt6。
我有一个看起来像这样的三层 QTreeWidget:
其中,每个顶级项和二级项都保证有子项,除非三级项被删除,并且三级项永远不会有子项。
我有一个修改填充树的数据的函数,它可以重命名显示的字段,我希望树反映对数据的更改并合并父级。
QTreeWidgetItems的标识如下:
tree.topLevelItem(a).child(b).child(c)
其中a
和是自然数。b
c
给定 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()
在需要删除的项目上使用。
本质上,要实现上述两个步骤,代码基本上做了以下工作:
当然,代码是不完整的,没有功能的,它不包括条件语句和类定义等,那是因为我试图让我的例子尽可能地小,尽管你确实明白我的代码背后的想法.
我想知道,什么是更优雅和更有效的解决方案来实现相同的结果,我已经谷歌搜索了几天,但又找不到任何有用的东西,这就是我在这里问的原因。
python - 发出 layoutChanged 时 QTreeView 的模型崩溃
我正在尝试编写一个模型(QAbstractItemModel
子类)来将数据填充到 QTreeView 中。我需要这些项目是可检查的,并希望稍后过滤掉所有未检查的内容。为了在过滤处于活动状态时正确隐藏未选中的项目,我需要layoutChanged
在我的setData
方法中发出。然而,这一信号(与 结合使用layoutAboutToBeChanged
)会在检查项目时导致不可预知的崩溃。我将其缩小到以下代码示例,我知道在检查项目时可以防止崩溃的两件事:
- 去除
QSortFilterProxyModel
- 不发出
layoutChanged
信号
尽管如此,两者对我的过滤都是至关重要的(我从示例代码中取出,因为它太多了)。要重现,您只需选择一个项目并按空格键 - 很快应用程序就会崩溃。有人看到我的模型有什么问题吗?我已经QtModelTester
从 pytest-qt 中检查过了——没关系。
python - 尝试将 SCN_MODIFIED 与 pyqt6 一起使用会产生 TypeError 崩溃
我有一个简单的编辑器,我正在尝试移植到 PyQt6,但遇到了文档修改消息的问题。它在 PyQt5 中运行良好,但在 PyQt6 中生成'TypeError: unable to convert a QVariant back to a Python object'
消息。
运行代码并在 PyQt5 中输入 abc 会生成以下输出
我在 linux 我使用的软件包版本
python - 关闭子窗口 Python PyQt6 后尝试更新 QTableView
setModel
我需要在关闭子窗口后使用父窗口中的方法自动触发刷新 QTableView 。子窗口将数据插入到 sqlite 数据库中。子窗口中的代码片段:
代码父窗口的片段:
python - 当两个小部件动画命令在开始时运行时,只有一个被动画化
我正在尝试通过将最大宽度设置为零来隐藏两个列表小部件,然后通过两个按钮来切换每个小部件以显示和消失,这工作正常,但不是在开始时,只有两个小部件中的一个被动画化,另一个只是保持打开状态,但是当按钮发出信号时,相同的命令可以正常工作。
请提出是否有更好的方法来达到相同的效果或背后的原因。
python - QSqlRelationalDelegate 显示 foreign_key - 相关记录的 id,而不是 Combobox 中的名称/值
我正在尝试添加QSqlRelationalModel
以QTableView
.
我在模型中设置了适当的QSqlRelationalDelegate
和适当QSqlRelations
的。显示数据库中的现有数据工作正常。具有相关数据的列更改为组合框,我可以从相关表中选择选项。
但是,当我尝试通过向模型添加一行来创建新记录时,组合框允许我从下拉列表中选择正确的值,但是在选择它之后,该值会更改为相关记录的 ID,就好像没有关系委托已设置。
主.py:
数据库:
这个问题可能与一个6 岁未回答的问题有关。
python - 我可以在 Qt 中的 app.exec() 之后运行一个函数吗?
之后可以执行功能sys.exec()
吗?
当我的程序启动时,它有一个从服务器检索数据的劳动密集型过程program.update_data()
。这个过程应该在程序执行时开始,我想显示一个加载栏小部件(因为它需要它的信息QDialog()
而创建)。program.update_data()
我遇到的问题是,如果我足够早地启动加载栏,因为那是在我调用之前sys.exec()
,我的 Widget 无法正常工作。
有没有办法在我调用之后sys.exec()
或可能启动program.update()
函数时执行代码sys.exec()
,比如我的类中的触发器program
(目前是 的子类QMainWindow
)