问题标签 [pyqt5]

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

python - Python 2.7 的 Qt5 和 QtQuick 2 绑定

我想将 Qt5 和 QtQuick2 与 PyQt 之类的绑定一起使用,但似乎 PyQt 唯一可用的构建是 Python 3.3。Python 2.7 有什么可以使用的绑定吗?

0 投票
1 回答
1976 浏览

python - 在 Qt (PyQt) 中将资源读入字节数组

如何将资源文件(比如在文件中声明assets/font-awesome/fonts/fontawesome-webfont.ttf并使用编译到模块)读取到字节数组、字节字符串(b'')和字符串('')中?assets/jquery/js/jquery-1.11.0.min.jsmyresources.qrcpyrcc5.exemyresources.py

我已经成功地实现了一个自定义模式处理程序(处理诸如 myscheme://controller/action/?param1=100 之类的请求,从QNetworkAccessManager和派生类QNetworkReply)。我需要这个,因为如果以后这个应用程序应该上线,我将体验(更多)无缝迁移过程。

现在我需要QWebView在我的自定义方案中提供资源(html、css、js、图像、字体等)中的文件。我试过QFile了,这是readAll方法。

这是我的代码:

似乎f.readAll()什么都不做。

0 投票
1 回答
1038 浏览

python - 无法将 QAbstractListModel 传递给 QML

我正在使用 PyQt5 尽可能接近这个 PySide 教程。当我运行我的代码时,我收到了这个错误:ReferenceError: pythonListModel is not defined,并且列表显示为黑色,没有项目。

这是我的代码

我的模型和包装

和我的 QML

为什么 Qt 找不到我的 contextProperty?

0 投票
3 回答
7196 浏览

qt - 如何知道 QML QListView 中所选项目何时更改?

我正在使用 QtQuick 2.0 和 QML ListView 来显示一些项目,我需要知道用户何时选择了不同的项目。当用户单击委托中的鼠标区域时发出信号,即

但仅当用户使用鼠标选择项目时,如果用户使用箭头键则不起作用。

我一直在查看文档以查找currentIndex更改时发出的信号,但我似乎找不到任何信号。我正在寻找类似的东西,QListWidget::itemSelectionChanged()但似乎 QML ListView 没有。

0 投票
2 回答
3034 浏览

python - PyQt5 QLabel 错误

在 PyQT4 中有一个QLabel()

当我在 PyQT5 中使用它时,它会抛出一个未定义的错误。

谁能告诉我 PyQT4 中的 Qlabel 是什么?

或者也许我错了?

这是我的代码:

0 投票
1 回答
2196 浏览

python - PyQT Python 错误 - 无法在没有 QApplication 的情况下创建 QWidget

我在 python 中创建了以下代码:

但是在执行它时,我得到了这个错误:

0 投票
2 回答
1229 浏览

python - 使用 PyQt,监视窗口大小和调整布局的首选(有效)方法是什么?

我在 PyQt 中有一个项目网格,当用户修改窗口大小时,我需要相应地增加/减少列数。行数由滚动区域处理,所以我不需要担心 y 方向的变化(如果重要的话)。

在我的 QMainWindow 实现中,我知道可以覆盖 resizeEvent() 函数,该函数将在任何和所有窗口调整时触发。但是,每次都使用它来重建网格是非常低效的。只是为了测试该函数以了解它是如何工作的,我让 resizeEvent 仅打印一个字符串,这导致我的窗口调整稍微滞后并且视觉上不完美(抖动而不是平滑)。我可能会对窗口大小运行一个简单的除法运算,看看它是否变大或变小到足以改变列数,但即便如此,每次调整运行一百次时,也可能会导致滞后问题。重建整个网格甚至可能需要一秒钟的时间,所以当用户正在操作窗口时最好不要这样做。

有没有更有效的方法,或者 resizeEvent 是我唯一的选择?理想情况下,我想要一个仅在用户完成调整窗口后触发的事件,而不是在几乎每个像素移动发生时触发的事件(在 1 秒内每次调整可能会触发数百或数千次) .

我正在使用 PyQt5,但如果您更熟悉 PyQt4,我可以在 PyQt5 的上下文中找出您的 PyQt4 解决方案。对于 C++ Qt4/5 解决方案也是如此。

0 投票
0 回答
512 浏览

python - Pyplot 在交互时崩溃

我有一个可以使用按钮刷新的 pyplot。这工作正常。但是,如果我尝试与 pyplot 交互(移动、调整窗口大小、缩放等),它会崩溃:

是eclipse说的。

下面是重现故障的最小运行示例。由于我是 python 新手,我的猜测是问题出在我的代码中。

系统:Win7 64、Python 3.3.5、PyQt 5.2.1、Scipy-stack 14.4.1

使用 plt.draw() 而不是 plt.show() 没有明显的区别。

0 投票
1 回答
462 浏览

qt - 为什么 QLabels 被覆盖而不是被删除?- 见图片

我的 UI 的 QGridLayout 有问题。在这里,我尝试创建响应用户加载的文件的 UI。第一次加载时,QGridLayout 会更新以反映文件的内容,一切都很好。但是,下次加载文件时,应该删除网格内的小部件(调用 deleteLater() 来执行此操作)。正在发生的事情是它们刚刚被覆盖。

图片可能会有所帮助 - 这是您在重复加载两个不同文件后看到的内容。您可以看到“传输消息”和“字段”文本很好。

文本被覆盖......看起来很糟糕!

我正在使用的代码如下。如果有人觉得这里没有发现错误,而是在代码的其他地方发现了错误,我可以发布更多。但似乎在这里找到了令人反感的逻辑。特别是,每次调用都创建一个新的 QLabel 有问题吗?

0 投票
4 回答
2497 浏览

python - 捆绑包(只是--onefile)

请阅读所有这篇文章并帮助我。

我想--onefile用 pyinstaller 创建可执行文件。

我在开发方面有这些:

  • 视窗 8.1 x64
  • Qt 5.2.1
  • 蟒蛇 27
  • PyQt5.2.1(使用 Visual Studio 2012 构建)
  • 视觉工作室 2012
  • PyInstaller 2.1
  • pyWin32

这些在部署端(VirtualBox)(作为一个干净的VM):

  • 窗户 8 x64
  • vcredist_x64 2012

这是我要构建的简单python程序:

好的,当我将其构建为--onedir( pyinstaller main.py) 时,它在开发方面和部署方面都可以正常工作。

当我将它构建为--onefile( pyinstaller -F main.py) 时,它在开发方面工作正常,但在部署方面不起作用。

并给出这个错误:

此应用程序无法启动,因为它无法找到或加载 Qt 平台插件“windows”。

可用的平台插件有:minimal、offscreen、windows。

重新安装应用程序可能会解决此问题。

我的错是什么?或者这栋楼有什么问题?

就此错误而言,它找不到临时文件夹中qt5_plugins的文件夹中的文件夹。_MEIxxxxx

或者,你认为问题出在sys模块上吗?如果是,我该怎么办?

感谢您提前回复

更新:

我应该说我在构建时有这个警告和错误:

1024 警告:没有这样的文件 C:\Python27\msvcp90.dll 1024 警告:程序集不完整 1026 错误:未找到程序集 amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_none

更新2:

我手动添加了msvcp90.dll,并解决了这个警告和错误。msvcm90.dllc:\Python27

更新 3:

qt.conf:

主要规格:

qt5_plugins使用pyinstaller有平台插件自动创建的。我认为它不需要手动添加为extralib。