问题标签 [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 投票
0 回答
91 浏览

python - 如何在 PyQt6 中设置窗口标志?

我是 Python 和一般编程的新手,一直在玩创建 GUI。我正在尝试设置一个窗口标志,以便我的主窗口始终位于顶部。我试图在我的中央小部件上设置窗口标志,但是出现属性错误。

下面是我的代码:

我收到的错误是:

0 投票
1 回答
24 浏览

python - 如何删除所有没有子级的顶级 QTreeWidgetItems 和二级 QTreeWidgetItems?

我在 Python 3.9.6 上使用 PyQt6。

我有一个三级QTreeWidget,这意味着所有顶级项目都有孩子,顶级项目的孩子也有孩子,顶级项目的大孩子没有孩子。

它的结构是这样的:

我有一些删除歌曲节点的代码,也就是 3 级节点,只有 3 级节点会被直接删除。

很明显,当一个专辑的所有歌曲都被删除时,专辑就会是空的,我想删除所有空的专辑,这链接到链中的另一个动作:当一个艺术家的所有专辑都被删除时,艺术家应该也被删除。

所以这变成:删除所有没有孩子的二级项目,然后删除所有没有孩子的一级项目。

这是我尝试过的,显然它不起作用也不应该起作用:

因为当项目被删除时,索引会改变,所以一个简单的 for 循环不应该工作。

而且我不能使用while循环,因为我不想清空所有东西,所以我不知道如何在这里使用while循环而不让它永远运行。

那么如何做到这一点呢?

0 投票
0 回答
34 浏览

pyqt - 为什么 QFrame 边框在左侧和顶部被截断?

为什么 QFrame 边框在左侧和顶部被截断?如果我将 LineWidth 设置得更大,则会显示边框。似乎只有少量被切断。

在此处输入图像描述

我在 QVboxLayout 和 QHboxLayouts 之前、中间和末尾添加了一个 QVboxLayout 和一些拉伸。它现在在拉伸窗口时有时会显示所有边框。

在此处输入图像描述

0 投票
1 回答
222 浏览

python - pyinstaller 在形成 python exe 时出错

在 exe 形成过程中出现错误,我该如何解决这些错误。我已经通过 pip install pyqt6 安装了 pyqt6

0 投票
1 回答
37 浏览

python - 显示隐藏小部件后如何将所有内容保持在正确位置?

我正在使用 PyQt6 制作一个小型音乐播放器。我希望在单击四个流派按钮中的任何一个之前隐藏 QListWidget 并在单击后显示。您可以查看以下图片。

(前):

(前)

(单击按钮后我希望看到的内容):

(单击按钮后我希望看到的内容)

单击微笑(快乐)按钮后,列表出现但不正确。我的工具按钮被压缩了。

(我现在看到的):

(我现在看到的)

这是我的代码。

我是 PyQt 的新手,我搜索了一段时间,但仍然找不到解决方案。有谁知道如何解决这一问题?

0 投票
1 回答
65 浏览

python - 如何根据任意文本长度获取 QGraphicsItem 的 boundingRect

我正在子类QGraphicsItem化以创建一个地图标记,该标记绘制一个图标(基于多边形点的常量字典)和一个文本标签。

下面的boundingRect方法定义了一个固定的边界框矩形。但由于文本标签可以是任意长度,我需要每个标记实例的边界框不同(例如,用于选择和聚焦)。

如何根据字符在屏幕上占据的实际像素宽度获取每个标记实例的边界矩形?我是否需要根据字体大小和字符数手动估算?或者 Qt 可以自动计算吗?

0 投票
0 回答
17 浏览

python - 如何在 PyQt6 中自定义 QMessageBox 的标题栏?

我在 Windows 10 上的 Python 3.9.6 x64 上使用 PyQt6 6.1.0,我想知道如何自定义 QMessageBox 的标题栏。

在我的项目中,一切都是深色主题,我已经使用QStyleSheet自定义了所有可以被QStyleSheet主题化的东西,除了标题栏和QScrollArea,它们与主题不一致。

我已经设法通过使用.setPalette()方法来设置 QScrollArea 的样式,并在这里找到了一种自定义窗口标题栏的方法:https ://stackoverflow.com/a/57571299/16383578 ,但到目前为止我还没有找到任何关于自定义的信息QMessageBox 的标题栏。

我想要的很简单,改变标题栏的字体大小、字体、字体颜色、背景颜色和关闭按钮。

我已经设法使用样式表自定义 QMessageBox 的内容,但是我找不到自定义标题栏的方法,我无法使用样式表来修改它,也无法使用 QPalette 来修改它,因为没有不是标题栏的颜色角色,谷歌搜索数小时无济于事......

但是我找到了一个 QStyle 类并使用我编写的函数递归地列出它的属性,我发现了这个:

我从未使用过 QStyle,但属性中出现了 19 次标题栏,所以我想它是相关的,它似乎能够实现我想要的,但我不知道如何使用它。

那么如何自定义 QMessageBox 的标题栏呢?

0 投票
1 回答
171 浏览

python - PyQt6获取QTreeWidgetItem的父窗口?

我在 Python 3.9.6 上使用 PyQt6 6.1.0,我想获取 QTreeWidgetItem 的父 QTreeWidgetItems 的父 QTreeWidget 的父 QMainWindow,因为我需要从 QTreeWidgetItem 中修改窗口。

完整的代码很长,超过 1800 行,大小超过 60 KiB,当我将它放在一个文件中时,它可以正常工作,但是当放在一个文件中时,它的可读性非常低,并且当拆分为文件时,全局变量可以是很难从类中访问。

基本上我的想法是重复调用.parent(),直到对象的类名是'MainWindow'。

我没有直接使用该类,因为该类是在主文件中定义的。

以下是在名为 的文件中定义的两个类groupA.py

树是这样填充的:

这是代码执行的开始:

当我检查任何 QTreeWidgetItem 时,程序崩溃,因为顶级 QTreeWidgetItems 没有父母:

我怎样才能解决这个问题?

0 投票
1 回答
265 浏览

python - 如何使用 pyqtgraph 和 QSerialPort 创建实时图?

总的来说,我对 Qt 和 python 还是有点陌生​​,所以我想知道是否可以在我正在从事的项目中获得一些帮助。我想使用 pyqtgraph 创建一个实时图表,该图表使用 QSerialPort 绘制通过 RS232 连接接收到的数据。从理论上讲,用户应该单击开始,表示来自 RS232 连接单元的数据流在用户单击停止时停止。下面的代码打开和关闭端口;但是,数据并未绘制在图表上。提前谢谢!

0 投票
0 回答
78 浏览

python - 为什么从 pyserial 读取值时没有发出我的 QThread 信号?

我正在尝试创建一个 pyqtgraph,它根据它从 pyserial 连接接收到的值实时更新。目前我有两个文件:一个从 pyserial 连接读取数据并在两个值发生更改时发出信号,另一个文件解释信号并显示两个更改的值。由于某种原因,从 pyserial 连接读取的值不会发送到第二个文件。按下启动 QPushButton 启动线程。我引用了这篇文章,但我无法弄清楚为什么信号存在问题,所以任何建议都将不胜感激。提前谢谢!

这是第一个文件:

这是第二个文件: