问题标签 [qtpy]

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

python - ImportError:无法导入名称 pyqtSignal?

问题背景:这是我正在研究并尝试启动 GUI 的以前的 PyQt 项目。我已经使用 Python 2.7 设置了 Anaconda 环境并使用了 PyQt4。错误是:-

File "gui/gui.py", line 26, in <module> from qtpy.QtCore import (Qt, QFileSystemWatcher, QSettings, pyqtSignal) ImportError: cannot import name pyqtSignal

代码 :-

即使在尝试尽我所能设置环境和其他方面后,我也无法确定为什么仍然会弹出此错误。在 Mac 上尝试过,即使在 Ubuntu 上也出现类似错误。有谁知道如何解决这个问题?

0 投票
1 回答
561 浏览

python - 使用 wxpython 构建独立的桌面 GUI 应用程序

我使用 Mechanize 和 BeautifulSoup 创建了一个 python 脚本,用于登录网站并在脚本中硬编码凭据和 url。它工作得很好。

我现在的要求是使用 wxpython 或任何其他用户可以在其上输入 URL 和凭据的独立桌面 GUI 应用程序,然后可以调用 python 脚本。

我开始学习 wxpython,但不完全确定如何继续学习。

任何人都可以向我简要介绍此要求的原型并指导我构建 GUI。

图形用户界面需要。3 个输入文本框 1 个调用 python 脚本的提交按钮

谢谢

0 投票
1 回答
726 浏览

python - 动态填充组合框 Qt

我正在尝试编写一个比较 xml 的小应用程序。但是,我在做 UI 时遇到了困难。我有一个触发 QFileDialog 的按钮。我接受字符串输入并填充一个组合框。不幸的是,组合框保持为空。当我对其进行硬编码时,它似乎可以工作。但我无法让应用程序动态地执行此操作。有什么我想念的吗?

这是代码:

CompareSiteAndRepo.ui 文件

0 投票
1 回答
587 浏览

python-3.x - 通过 pyqt 使用 Python 更改多个依赖组合框

我正在尝试使用 python 在 Qt中添加三个依赖组合框。这意味着您可以更改一个组合框,该组合框会更改第二个组合框中的项目列表。在那里,您可以选择另一个项目来更改第三个组合框中的选择。因此我使用 qtpy 作为两者之间的连接。

真正重要的是:所有三个组合框的连接!

在您第二次更改第一个组合框之前一切正常(一直在更改第二个和第三个组合框时一切正常)

我的目标是根据第一个组合框(和第二个)尽可能频繁地更改所有三个组合框中的值。

这是我的代码:

0 投票
1 回答
1200 浏览

python - Python 线程模块 - GUI 仍然冻结

我用 GUI 构建了一个 twitter 爬虫,它从任何给定的 Twitter 帐户中获取最新的 20 条推文,并将它们保存到一个 csv 文件中。

爬虫应每 x 分钟 ( timeIntervall ) 重复爬取 y 次 ( times )。当爬虫当前很忙时,GUI 会冻结,所以我尝试使用线程来解决这个问题:

输入timeIntervalltimespushButton后,会启动一个工作线程来处理爬取。应用程序正在运行,但 GUI 仍然冻结。

我怀疑我需要另一个用于 GUI 的线程并尝试了以下操作:

现在 GUI 只打开非常短暂,然后立即再次关闭。

任何建议如何解决这个问题?还是不使用 PyQt 线程模块可能很愚蠢?

0 投票
0 回答
1541 浏览

python - 在 python3 和 Qt5 中使用虚拟键盘

我想在 Win10 上的 python3 (3.6) 项目中使用 Qt 的虚拟键盘(Qt5.11.1 或更高版本?),但我被卡住了。我有 anaconda 环境,我很确定虚拟键盘也在那里,因为我可以找到一些名称正确的文件夹。

当一个输入部件被选中时,除了显而易见的虚拟键盘弹出,主程序应该是什么样子?

编辑:要清楚,我不想重新发明或定制轮子,只是使用它。

0 投票
3 回答
2458 浏览

python - 为什么某些 Python 包名称与其导入名称不同?

某些包是使用与 PyPI 上的包名称不同的字符串导入的,例如:

  • pyyaml(pip 安装 pyyaml),但导入 yaml
  • qtpy(pip install qtpy),是导入是 qtpy 但包是 QtPy

有几个工具不能处理这个问题,例如 sphinx:

我现在不记得了,但扫描文件并打印未安装包的requirements.txt警告的工具也是如此(但它是并且它的名称是 pyyaml)。yaml

0 投票
1 回答
1834 浏览

python - Qt:停靠小部件如何获得其初始大小?

当一个小部件停靠时,我希望它改变方向并相对于扩展坞的扩展方式具有最小的尺寸。

那是,

  • 左/右停靠 => 具有最小宽度的从上到下的方向
  • 顶部/底部停靠 => 具有最小高度的从左到右方向

问题是,每当方向改变时,dock 就会出现看似任意的宽度或高度。停靠时,我找不到将停靠小部件调整大小/强制为特定大小的方法。我尝试了无数种覆盖sizeHint, minimumSizeHint, 调用adjustSize和摆弄sizePolicy.

如何确保初始坞站大小?


我的基本应用程序如下所示:

在此处输入图像描述

该应用程序显示主要和次要信息以及相应的控件集。包含主要和次要内容的选项卡小部件被设置为中央小部件。一个 QStackedWidget 容纳了各个仪表板中的控件,位于一个扩展坞中。当标签更改时,显示相应的仪表板。下面在基本应用程序代码中给出了此代码

困难在于改变仪表板的方向会扰乱码头的尺寸。

调整仪表盘方向,我可以想到两个合理的解决方案:

  • 通过resizeEvent
  • 通过dockLocationChanged信号

通过调整方向resizeEvent

在我看来,这似乎是更可取的选择。它为用户提供了最大的灵活性。如果他们不喜欢停靠点的方向,将其拖过特定限制将允许他们更改停靠点的方向。在这里,我检查它是否宽于高。

下面在resize 方法中给出了完整的代码。

改变方向dockLocationChange

由于调整大小事件一直在发生,另一种方法可能是仅在停靠位置更改时更改方向。为此,请将功能连接到dockLocationChanged信号并根据扩展坞调整方向。

基本应用代码

该计划由 5 个独立的课程组成。

为了

  1. MyWindow,
  2. PrimaryDashboard, 和
  3. SecondaryDashboard

分离的原因应该足够清楚。

为了

  1. MyDock
  2. DockContainer

分隔是为了便于覆盖sizeHint,setDirection或其他方法。

调整大小方法

此代码与基本应用程序代码相同,但resizeEvent在停靠小部件中被覆盖。

dockLocationChanged方法

此代码与基本应用程序代码相同,但dockLocationChanged信号连接到根据当前停靠位置调整方向的方法。

0 投票
0 回答
97 浏览

python - 如何在 QtPy 中设置日志记录级别(启用完整的调试信息)

这似乎是一个微不足道的问题,但我真的找不到如何让我的 qtpy 应用程序显示完整的调试信息。我想达到类似于在原生 Qt 中为 C++ 构建定义 QT_MESSAGELOGCONTEXT 的效果。
所以很短我想调试 Qt 本身,因为我有时会遇到一些 SEGFAULT。

0 投票
1 回答
206 浏览

python - 在 PyCharm 2020.1 中安装 PyQt5 + qtpy 包时出错:SSL 模块不可用

在 Win10 中安装 Qt (5.14.2) 后,我在 PyCharm 2020.1 中创建了一个新项目。从项目设置对话框中,我尝试安装 PyQt5 和 qtpy 包。我收到以下错误:

SSL 模块不可用。我该如何安装它?能否请你帮忙?非常感谢!