我有一个问题,下面的行self.tableView.set??????????(df)应该在PyQt5中显示数据帧.我放 ???那里我错过了我需要的代码.
def btn_clk(self):
path = self.lineEdit.text()
df = pd.read_csv(path)
self.tableView.set??????????(df)
Run Code Online (Sandbox Code Playgroud)
其余的代码可以工作,因为如果我print(df)在上面的代码中使用,数据框就会在IPython控制台中打印出来.所以,Pandas读取CSV并打印出来.
但是,我尝试了很多东西让它在PyQt5中显示出来并且没有任何效果.我对PyQt不太熟悉,刚刚开始玩它而且我被困在这里.
这是我的代码:
from PyQt5 import QtCore, QtGui, QtWidgets
import pandas as pd
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(662, 512)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget)
self.horizontalLayout.setObjectName("horizontalLayout")
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setObjectName("lineEdit")
self.verticalLayout.addWidget(self.lineEdit)
self.tableView = QtWidgets.QTableView(self.centralwidget)
self.tableView.setObjectName("tableView")
self.verticalLayout.addWidget(self.tableView)
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setObjectName("pushButton")
self.verticalLayout.addWidget(self.pushButton)
self.horizontalLayout.addLayout(self.verticalLayout)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 662, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow) …Run Code Online (Sandbox Code Playgroud) 有没有什么理由说QtGui与PyQt5一起打包???
我正在使用Mark Summerfield的Rapid GUI编程书.显然这本书是用Qt4编写的,但我被推荐使用Qt5和PyQt5.我想在第4章中运行第一个示例代码.代码以以下import语句开头:
import sys
import time
from PyQt5.QtCore import *
from PyQt5.QtGui import *
Run Code Online (Sandbox Code Playgroud)
编译器响应:
Traceback (most recent call last):
File "wakeUp.py", line 4, in <module>
from PyQt5.QtGui import *
ImportError: No module named 'PyQt5.QtGui'
Run Code Online (Sandbox Code Playgroud)
请注意,PyQt5.QtCore import语句不会生成错误.
从终端,
$ echo $PYTHONPATH
:/usr/lib/python3.3/site-packages
Run Code Online (Sandbox Code Playgroud)
有没有其他人遇到QtGui的导入错误?
从我可以进行的互动会议
>>> import PyQt5.Qt
>>> import PyQt5.QtDBus
>>> import PyQt5.QtNetwork
>>> import PyQt5.QtXmlPatterns
Run Code Online (Sandbox Code Playgroud)
但我没有QtWidgets,QtGui,QtWebkit,QtDesigner和其他几个.
此外,如果它有用,/ usr/lib/python3.3/site-package/PepQt5的内容是:
__init__.py QtCore.so QtDBus.so QtNetwork.so Qt.so QtXmlPatterns.so uic
Run Code Online (Sandbox Code Playgroud)
这是我能够导入的相同模块.其他模块(QtWidgets,QtGui等)是否也应该在这里?
我使用的是Ubuntu 13.04和Python 3.3.
当我尝试使用PyCharm导入以下内容时确定
import sys
from PyQt5.QtWidgets import QtGui, QtCore
Run Code Online (Sandbox Code Playgroud)
编译时会生成此错误:
ImportError: No module named 'PyQt5'
Run Code Online (Sandbox Code Playgroud)
基本上我想在PyCharm中使用PyQt5所以请详细说明我应该怎么做才能安装它.
先感谢您.
简单地说 - 我如何在PyQt5中进行键盘快捷键(运行函数)?我看到我应该QAction以这样或那样的方式,但我不能把这两个和两个放在一起,所有的例子似乎都不适用于PyQt5.谢谢
我在这看了这个问题:
可以从setuptools setup.py中要求PyQt吗?
分发具有gui的python应用程序并且它基于PyQt的正确方法是什么?(我使用的是PyQt5和Python3)
我还在学习如何分发东西,所以我不知道我的问题是否有意义.
编辑:
答案是正确的,sudo pip3 install .为我自己的setup.py文件工作,但显然pyqt5不包括QtWebKitWidgets模块,并且它不能安装在pip3的单独包中.所以现在我正在考虑完全脱离Python并使用Javascript + Electron作为一种易于运行的多平台语言进行开发.
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
class Application(QMainWindow):
def __init__(self):
super(Application, self).__init__()
self.setWindowIcon(QtGui.QIcon('icon.png'))
Run Code Online (Sandbox Code Playgroud)
我正在尝试设置一个窗口图标(窗口的左上角),但正常的图标却消失了.
我尝试了许多图标分辨率(8x8,16x16,32x32,64x64)和扩展名(.png和.ico).
我究竟做错了什么?
我用最新的PyQt5 QuickControls试验,并试图通过QML申请材料风格解释这里和这里:
QQuickStyle::setStyle("Material");
Run Code Online (Sandbox Code Playgroud)
但不幸的是,我找不到在PyQt中对QQuickStyle类的任何引用来通过python代码应用样式,只有工作解决方案是为此指定命令行参数:
python app.py -style material
Run Code Online (Sandbox Code Playgroud)
有人能通过python脚本指出我正确应用QuickControls样式吗?
[更新:] 是的,这是可能的,现在大约 20 个月后。请参阅下面的 Update3![/更新]
这真的不可能吗?我所能找到的只是调用 FFmpeg(或其他软件)的变体。我当前的解决方案如下所示,但为了可移植性,我真正想要的是一个纯 Python 的解决方案,它不需要用户安装额外的软件。
毕竟,我可以使用 PyQt 的 Phonon 轻松播放视频,但我不能简单地获取视频的尺寸或持续时间之类的信息?
我的解决方案使用 ffmpy ( http://ffmpy.readthedocs.io/en/latest/ffmpy.html ),它是 FFmpeg 和 FFprobe ( http://trac.ffmpeg.org/wiki/FFprobeTips )的包装器。比其他产品更流畅,但它仍然需要额外的 FFmpeg 安装。
import ffmpy, subprocess, json
ffprobe = ffmpy.FFprobe(global_options="-loglevel quiet -sexagesimal -of json -show_entries stream=width,height,duration -show_entries format=duration -select_streams v:0", inputs={"myvideo.mp4": None})
print("ffprobe.cmd:", ffprobe.cmd) # printout the resulting ffprobe shell command
stdout, stderr = ffprobe.run(stderr=subprocess.PIPE, stdout=subprocess.PIPE)
# std* is byte sequence, but json in Python 3.5.2 requires str
ff0string = str(stdout,'utf-8')
ffinfo = json.loads(ff0string)
print(json.dumps(ffinfo, indent=4)) …Run Code Online (Sandbox Code Playgroud) 我有 PyQt5 设计器的问题。我用 -pip install PyQt5 安装 PyQt,然后 -pip install PyQt5-tools 一切正常。但是当我尝试运行 Designer 时,它打开消息框并显示错误:此应用程序无法启动,因为无法初始化 Qt 平台插件!如何处理?
我尝试安装的程序需要安装 PyQt5 5.15.0 ,这给了我这个错误。奇怪的是,安装适用于最新版本的 PyQt5 (5.15.2),但该程序特别需要 5.15.0。
命令输出:
Collecting PyQt5==5.15.0
Using cached PyQt5-5.15.0.tar.gz (3.3 MB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing wheel metadata ... error
ERROR: Command errored out with exit status 1:
command: 'c:\users\mshal\appdata\local\programs\python\python39\python.exe' 'C:\Users\mshal\AppData\Roaming\Python\Python39\site-packages\pip\_vendor\pep517\_in_process.py' prepare_metadata_for_build_wheel 'C:\Users\mshal\AppData\Local\Temp\tmp41s11ev6'
cwd: C:\Users\mshal\AppData\Local\Temp\pip-install-sfw90hvc\pyqt5_e2cc46859b554da7b84798abae5378ba
Complete output (31 lines):
Traceback (most recent call last):
File "C:\Users\mshal\AppData\Roaming\Python\Python39\site-packages\pip\_vendor\pep517\_in_process.py", line 126, in prepare_metadata_for_build_wheel
hook = backend.prepare_metadata_for_build_wheel
AttributeError: module 'sipbuild.api' has no attribute 'prepare_metadata_for_build_wheel'
During handling of the above exception, another exception …Run Code Online (Sandbox Code Playgroud) pyqt5 ×10
python ×8
pyqt ×6
python-3.x ×3
qt ×3
ffmpeg ×1
icons ×1
opencv ×1
pandas ×1
pip ×1
pycharm ×1
python-3.4 ×1
python-3.6 ×1
qmainwindow ×1
qtableview ×1
qtgui ×1
setup.py ×1
video ×1