标签: pyqt5

是否有专门针对PyQt5的教程?

我正在寻找一个PyQt5教程.在没有教程的情况下首次使用Python开始GUI开发相当复杂.

到目前为止我只找到了一些PyQt4教程,并且由于Qt4到Qt5的变化,例如事实SIGNAL并且SLOT在Qt5中不再支持,所以为PyQt5提供特定的教程会很好.

有人可以提供一个如何使用PyQt5开始GUI开发的教程吗?

python user-interface qt5 pyqt5

63
推荐指数
3
解决办法
5万
查看次数

此应用程序无法启动,因为它无法找到或加载Qt平台插件"cocoa"

我想我在过去的20个小时内尽我所能,但似乎没有任何效果.我的应用程序正在运行和工作 - 就像它应该 - 我唯一的问题是我无法.app从它创建一个包.我都尝试Py2Appcx_Freeze,但他们的非正常工作.由于多平台支持,我会坚持使用后者 - 如果可能的话.

setup.py如下所示:

import sys
from cx_Freeze import setup, Executable

base = None
if sys.platform == 'win32':
    base = 'Win32GUI'

OPTIONS = {'build_exe': {'includes': ['sip',
                                      'PyQt5',
                                      'PyQt5.QtCore',
                                      'PyQt5.QtGui',
                                      'PyQt5.QtWidgets',
                                      'PyQt5.QtMultimediaWidgets',
                                      'PyQt5.QtMultimedia',
                                      'PyQt5.QtNetwork']}}

EXECUTABLES = [Executable('main.py', base=base)]
NAME = 'coublet'
VERSION = '0.5.70'

setup(name = NAME,
      version = VERSION,
      options = OPTIONS,
      executables = EXECUTABLES)
Run Code Online (Sandbox Code Playgroud)

我有的错误信息是这样的:

objc[28404]: Class NotificationReceiver is implemented in both
/Users/.../build/coublet-0.5.70.app/Contents/MacOS/QtWidgets and
/usr/local/Cellar/qt5/5.3.1/lib/QtWidgets.framework/Versions/5/QtWidgets. One of …
Run Code Online (Sandbox Code Playgroud)

macos bundle cx-freeze python-3.x pyqt5

37
推荐指数
2
解决办法
2万
查看次数

PyQt5无法导入QtGui

我刚从PyQt4转到5,我遇到了QtGui的问题.我使用32位Windows安装程序安装,而不是我自己的构建.

当我做:

from PyQt5 import QtGui
Run Code Online (Sandbox Code Playgroud)

我明白了

class MainWindow(QtGui.QMainWindow, UI.MainUI.Ui_MainWindow):
AttributeError: 'module' object has no attribute 'QMainWindow'
Run Code Online (Sandbox Code Playgroud)

所以我试过了

from PyQt5.QtWidgets import QtGui
Run Code Online (Sandbox Code Playgroud)

结果如下:

ImportError: cannot import name QtGui
Run Code Online (Sandbox Code Playgroud)

然后我尝试根据Pyinstaller更改sys.path :ImportError:无法导入名称QtGui工作但它仍然给我相同

ImportError: cannot import name QtGui
Run Code Online (Sandbox Code Playgroud)

更新:看起来我确实导入了QtGui,因为当我进入IDLE并尝试它时,它仍然自动完成QMovie和一大堆其他属性.有什么理由QMainWindow不会在那里吗?(事实并非如此,QDialog也不重要)

python pyqt python-3.x pyqt5

34
推荐指数
1
解决办法
6万
查看次数

我应该在PyQt应用程序中使用`app.exec()`或`app.exec _()`吗?

我使用Python 3和PyQt5.这是我的测试PyQt5程序,重点关注最后两行:

from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import sys

class window(QWidget):
def __init__(self,parent=None):
    super().__init__(parent)
    self.setWindowTitle('test')
    self.resize(250,200)

app=QApplication(sys.argv)
w=window()
w.show()
sys.exit(app.exec())
#sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

我知道exec是Python中的语言关键字.但官方PyQt5文档 上的代码(特别是退出部分的Object Destruction).我看到这个例子显示使用app.exec()它让我感到困惑.

当我在我的机器上测试它时.我发现与我的目的没有任何明显的区别.有和没有_产生相同的输出没有时间差.

我的问题是:

  • 我用的时候有什么不对app.exec()吗?喜欢与Python的内部冲突exec?我怀疑是因为两人exec正在执行某些事情.
  • 如果没有,我可以互换使用吗?

python qt pyqt python-3.x pyqt5

33
推荐指数
2
解决办法
1万
查看次数

在 Linux 上安装 PyQt5 5.14.1

pip3 install PyQt5
Collecting PyQt5
  Using cached https://files.pythonhosted.org/packages/3a/fb/eb51731f2dc7c22d8e1a63ba88fb702727b324c6352183a32f27f73b8116/PyQt5-5.14.1.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/usr/lib/python3.6/tokenize.py", line 452, in open
        buffer = _builtin_open(filename, 'rb')
    FileNotFoundError: [Errno 2] No such file or directory: '/tmp/pip-build-b2zw891b/PyQt5/setup.py'

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-b2zw891b/PyQt5/
Run Code Online (Sandbox Code Playgroud)

然后我从https://www.riverbankcomputing.com/software/pyqt/download5下载了 zip 文件夹并运行:

python3 configure.py --qmake /home/oo/Qt/5.14.0/gcc_64/bin/qmake
make
sudo make install
Run Code Online (Sandbox Code Playgroud)

成功的

>>> import PyQt5
>>> import PyQt5.QtCore
Traceback (most recent …
Run Code Online (Sandbox Code Playgroud)

python qt pyqt pyqt5 pyqtchart

30
推荐指数
3
解决办法
4万
查看次数

如何在Windows上安装PyQt5?

当我尝试使用该命令在Windows上安装PyQt5时

python configure.py
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Error: Make sure you have a working Qt qmake on your PATH.
Run Code Online (Sandbox Code Playgroud)

我从PyQt5下载了pyQt5 .

我该如何安装PyQt5?


更新:

Qt 5.0.2 for Windows 64-bit (VS 2012, 500 MB)Qt下载页面安装,现在我有这个错误:

Querying qmake about your Qt installation...
Determining the details of your Qt installation...
Error: Failed to determine the detail of your Qt installation. Try again using
the --verbose flag to see more detail about the problem.
Run Code Online (Sandbox Code Playgroud)

当我执行命令时python configure.py --verbose:

Querying qmake about your …
Run Code Online (Sandbox Code Playgroud)

python windows qt nmake pyqt5

26
推荐指数
5
解决办法
14万
查看次数

PyQt5 - 如何启动设计师

感觉真的很蠢,现在,但标题说明了一切:

你如何启动QtDesigner?

我安装了PyQt5via pip,我相信已经确定了它已经安装的目录

C:\Users\%username%\AppData\Local\Programs\Python\Python36\Lib\site-packages\PyQt5
Run Code Online (Sandbox Code Playgroud)

怎么办?有很多.pyd文件,一些.dll也是,但没有可执行文件(好吧,除了QtWebEngineProcess.exein ...\site-packages\PyQt5\Qt\bin,但这听起来不像我正在寻找的.

python qt qt-designer pyqt5

25
推荐指数
10
解决办法
5万
查看次数

ImportError:没有名为PytQt5的模块

以下是我的python,qt和sip版本

root@thura:~# python -V
Python 2.7.3
root@thura:~# qmake --version
QMake version 3.0
Using Qt version 5.0.2 in /usr/lib/i386-linux-gnu
root@thura:~# sip -V
4.15.3
Run Code Online (Sandbox Code Playgroud)

我试图通过以下操作来导入PyQt5

from PyQt5.QtWidgets import QtGui, QtCore
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

ImportError:没有名为PyQt5.QtWidgets的模块

我该如何解决这个错误.

更新=====================

当我尝试PyQt4时,我得到了以下错误.

从PyQt4.QtCore导入pyqtSlot作为Slot RuntimeError:sip模块实现API v10.0到v10.1但PyQt4.QtCore模块需要API v8.1

更新2013-12-20 ======================================

1)从这里下载sip-4.15.3.tar.gz

2)提取sip-4.15.3.tar.gz

3)将sip-4.15.3复制到/ home/thura

4)输入"cd /home/thura/sip-4.15.3"

5)键入"python configure.py",按回车键,按照说明操作(输入yes并按回车键)

6)输入"make",按回车键入"make install",按回车键

7)从这里下载PyQt-gpl-5.1.1.tar.gz

8)提取PyQt-gpl-5.1.1.tar.gz

9)将PyQt-gpl-5.1.1文件夹复制到/ home/thura文件夹.

10)输入"cd /home/thura/PyQt-gpl-5.1.1"

11)键入"python configure.py",按回车键,按照说明操作(输入yes并按回车键)

12)输入"make",按回车键入"make install",按回车键

更新2013-12-20 =====================

再次重做之后.我收到以下错误

make[2]: Entering directory `/home/thura/PyQt/qpy/QtDBus'
make[2]: Nothing to be done for `install'.
make[2]: Leaving …
Run Code Online (Sandbox Code Playgroud)

python pyqt5

24
推荐指数
6
解决办法
9万
查看次数

如何使用 pyinstaller 将多个 .py 文件构建为单个可执行文件?

我制作了一个包含 5-6 个 .py 文件的小型 PyQt 应用程序。现在我想将它们构建并编译成一个主文件,这意味着它必须从一个主窗口 exe 中运行。

我的 .py 文件已成功相互连接。我已经使用 pyinstaller 来制作可执行文件,但问题是我将每个 .py 文件构建到了自己的 .exe 文件中。但我想制作一个 .exe 文件,通过它可以使用所有 .py 文件。

如何将所有 .py 文件构建为单个 .exe 文件?

python pyinstaller pyqt5

23
推荐指数
2
解决办法
4万
查看次数

PyQt正确使用emit()和pyqtSignal()

我正在阅读有关PyQt5的一些文档,以提出一个简单的信号槽机制.由于设计考虑,我已经停止了.

请考虑以下代码:

import sys
from PyQt5.QtCore import (Qt, pyqtSignal)
from PyQt5.QtWidgets import (QWidget, QLCDNumber, QSlider,
    QVBoxLayout, QApplication)


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def printLabel(self, str):
        print(str)

    def logLabel(self, str):
        '''log to a file'''
        pass

    def initUI(self):

        lcd = QLCDNumber(self)
        sld = QSlider(Qt.Horizontal, self)

        vbox = QVBoxLayout()
        vbox.addWidget(lcd)
        vbox.addWidget(sld)

        self.setLayout(vbox)

        #redundant connections
        sld.valueChanged.connect(lcd.display)
        sld.valueChanged.connect(self.printLabel)
        sld.valueChanged.connect(self.logLabel)

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Signal & slot')
        self.show()


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

要跟踪对滑块所做的更改,我只需打印并记录所做的更改.我不喜欢的代码是我需要调用sld.valueChanged插槽三次将相同的信息发送到3个不同的插槽.

是否可以创建自己的pyqtSignal,将整数发送到单个槽函数.反过来,插槽功能会发出需要进行的更改吗? …

python signals pyqt signals-slots pyqt5

22
推荐指数
1
解决办法
5万
查看次数