问题标签 [pyside6]
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 - 使用 PySide/PyQt 运行 QThread 时禁用元素
这是我单击“确定”按钮时得到的。
但我想在run_action()
仍在运行时禁用这两个按钮,最后将其重置bar
为 0。
这是我当前的代码:
python - 仅对复选框进行排序
这是我当前的代码。
我希望当您单击列标题时,复选框按其状态排序。
如您所见, setSortingEnabled(True) 是不够的。
python - Windows 10 上的 Qt6 for Python (PySide6):无法使 QtQml 和 QtQuick 从 QML 工作
在我的 Windows 10 机器上,我正在尝试一些简单的新 Qt6 示例,并且基于 QML 的示例对我不起作用。
我正在运行 Python 3.8.6 和虚拟环境
pyside6 在没有任何警告的情况下安装到 venv
和一个使用 QApplication 和 QLabel 的非 QML hello world 示例运行良好(这个:https ://doc.qt.io/qtforpython/tutorials/basictutorial/widgets.html )
这个例子不起作用,取自https://doc.qt.io/qtforpython/tutorials/basictutorial/qml.html:
主要.py:
视图.qml:
我收到的尝试运行的消息是:
我验证并且文件没有丢失,它在那里:
我还缺少什么?
python - 在 on_change 函数中删除父布局(SIGSEGV 错误)
我有一个 QComboBox, cbo_box
, 嵌套在一个框架中, self.ui.frameFilterControls
, 带有: cbo_box.currentTextChanged.connect(self.choice_changed)
. 在self.choice_changed()
中,我调用一个函数来清除框架布局,包括cbo_box
,然后使用适当的控件(包括新的cbo_box
)重新生成布局:
我遇到的问题是,当self.choice_changed()
返回时,它会引发 SIGSEGV 错误:
我猜是因为它无处可归,但我不确定。我想知道是否有可能代替调用删除和重新创建控件的函数,on_change
如果cbo_box
我可以安排它在下一次表单更新时进行评估,或者类似的事情?
编辑:
我制作了一个重现该行为的最小示例。
当我运行上述程序并将组合框从“test 1”切换到“test 2”时,控制台输出如下:
我想要的行为是完全重新生成框架,而不会出现错误。谢谢!
python - PySide6 无法运行
我最近安装了 PySide 6。我正在运行 Ubuntu 20.04 尝试在 VSCode 上运行我的代码并且刚刚运行:export QT_DEBUG_PLUGINS=1
我收到以下消息:
我已经卸载并重新安装了 PySide 6,但仍然无法让它运行。我不确定我在该消息中缺少什么,我需要做什么。
我试图运行的代码是:
这只是“创建一个简单的应用程序”复制并直接从网站粘贴。
关于修复的任何想法?或者需要更多信息?
我还没有从 qt.io 的论坛或与此问题相关的任何其他文章中找到任何解决方案。
编辑
到目前为止,我遇到了一项工作。我可以直接从终端打开文件。但是,在尝试运行 VSCode 时它仍然无法正常工作。
编辑2
这有可能是 VSCode 扩展问题。PySide 或 QT 将文件保存在 .ui 中。我的代码在 .py 中。将其更改为 .ui 时,VSCode 提示我使用正确的扩展名来打开它。我还没有打开它,但我相信这就是我应该如何看待它。让它在终端中打开,而不是在 VSCode 中打开,告诉我这是 VSCode 所没有的。
python - Raspberry OS 上的 Qt6 - 如何安装和使用 PySide6?
我一直在使用 PyQt5 在 Raspberry OS 上开发 GUI 应用程序。
现在我想为我的 Raspberry OS 使用最新的 Qt 版本 6。我搜索了一下,但找不到在 Raspberry OS 上安装 Qt6 和 PySide6 的简单解决方案。
如何安装和使用 Qt6 和 PySide6?
python - PySide6/shiboken6 的 ImportError
我试图让 PySide6 在 Python 3.8.0 中运行。安装顺利:
但我遇到了导入错误:
我做错了什么?
qt - 代理模型中不需要的空行
我对 Qt 的模型/视图架构有疑问。
我已经实现了一个TestModel
继承自的类,具有插入新行和删除行QAbstractItemModel
的自定义方法。我的模型具有层次结构,并且树中有不同的方法和不同的级别。TestModel.addRevision(...)
TestModel.removeRevision(...)
add_X
remove_X
当然,根据文档,我在插入或删除这样的行之前调用所需的函数(省略号处理基于我的数据源的信息检索,很长,我认为没有必要显示)
我一一插入行,并注意我没有通过调用添加太多行的常见错误self.beginInsertRows(parent, start, end)
with end = start +1
。
去除方法具有非常相似的结构。
我可以通过附加 aQTreeView
来验证我的模型工作正常。现在我还有一个更新方法,它执行以下操作(在伪代码中):
在模型上,此功能也按预期工作,一旦我触发更新,视图也会自动更新。请注意,我update
也在初始化期间使用。
下一步,我实现了一个用于排序和过滤的代理模型。我的问题甚至可以使用 default 重现QSortFilterProxyModel
,而无需设置任何过滤器。
我这样设置视图:
然后在我触发后update
,视图显示变为
添加这些讨厌的空行的地方。与“好”行不同,它们是不可选择的,我不知道它们来自哪里。我尝试用QSortFilterProxyModel
a替换QIdentityProxyModel
并且多余的行消失了,所以我非常有信心空行仅添加到QSortFilterProxModel
. 但是,这是默认实现,我还没有覆盖任何排序和过滤方法。
有趣的是,当我使用 时QIdentityProxyModel
,视图在调用 后显示所有项目处于折叠状态update
,而QSortFilterProxyModel
项目保持展开状态。
问题:
似乎调用beginInserRows
and是不够的endInsertRows
。我是否需要发出其他信号来通知代理模型更新?
或者,在源模型中完成所有删除之前,代理模型是否更新得太快?
编辑 1
根据要求,这是update
我模型的完整方法。我还包括了其他正在使用的类和方法:
更新模型:
添加修订:
删除修订:
编辑 2
根据@Carlton 的建议,我重新排序了remove_revision
. 我明白,这很容易成为问题(现在或以后)。现在的实现如下:
后来我打算直接传递索引,但是为了调试我决定暂时存储它。但是,有问题的行为仍然存在不变。
编辑 3
因此,根据@Carlton 的建议,“幻影行”似乎是rowCount
与实际数据不匹配的问题。
我在方法中重新排列了更多代码,add_revision
以便为缩略图组提供以下内容:
如您所见,我手动选择了start
andend
参数。通过此修改,我可以将数据插入实际上放在两者之间beginInsertRows
,endInsertRows
并且“幻影行”消失了。但是,然后我有一个新问题:我通常无法事先知道新行将出现在哪些索引处。对于建议的信号,这似乎是一个很好的用途layoutAboutToBeChanged
,但我怎样才能在pyside6
中传递父列表?
编辑 4:MWE
这是一个最小的工作示例。您需要安装 PySide6。 MWE 和这里直接托管的相同代码: