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样式吗?
可能吗?我的意思是,是的,pyqtdeploy介绍页面说:"pyqtdeploy是一个部署PyQt应用程序的工具.它支持部署到桌面平台(Linux,Windows和OS/X)和移动平台(iOS,Android和Windows RT)."
我已经安装了Qt 5.3.0 for Android及其所有先决条件(SDK,NDK等).此外,我在QtCreator中使用简单的按钮和标签制作了测试项目,用于测试部署.一切都好.下一步是尝试pyqtdeploy来制作Qt项目,非常简单.但是当我试图构建这个项目时,链接器说没有QtCore,QtWidget库.我可以认识到,我没有静态链接的PyQt库,必须为arm架构编译它们.这样对吗?但后来我意识到,python库本身也必须是arm编译的.我可以在Qt中从源代码构建这个库吗?
搜索什么也没做.如果这是真的,为什么没有人(河岸,python)没有手臂编译库?也许我很想念一些东西.在这种情况下,我有更多的全球性问题.
如何使用pyqtdeploy和Qt 5.3.0 for Android将PyQt5.3 Python 3.4应用程序部署到Android?
我正在关注Rapid GUI Programming with Python and Qt正在使用PyQt4的Mark Summerfield .我更喜欢使用PyQt5,但我的机器上都有.我正在书中进行第二次练习,内容如下:
from __future__ import division
import sys
from math import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
class Form(QDialog):
def __init__(self, parent=None):
super(Form, self).__init__(parent)
self.browser = QTextBrowser()
self.lineedit = QLineEdit("Type an expression and press Enter")
self.lineedit.selectAll()
layout = QVBoxLayout()
layout.addWidget(self.browser)
layout.addWidget(self.lineedit)
self.setLayout(layout)
self.lineedit.setFocus()
# This line fails:
self.connect(self.lineedit, SIGNAL("returnPressed()"), self.updateUi)
self.setWindowTitle("Calculate")
def updateUi(self):
try:
text = unicode(self.lineedit.text())
self.browser.append("%s = <b>%s</b>" % (text, eval(text)))
except:
self.browser.append(
"<font color=red>%s is …Run Code Online (Sandbox Code Playgroud) 我最近在Windows上为32位计算机安装了PyQt5模块.但是,当我试图运行他们的例子时,没有一个会运行.提供的所有示例都具有与下图中类似的错误类型.当我尝试在Python shell中导入PyQt5时,它只是正确导入.
我认为这表明PyQt已成功安装.
但是,当我尝试运行示例时,它显示如下:
这是一个例子,其他例子有不同的'没有创建'
事实 - 运行Windows 7,PyQt5最新版本,Python 3.5,安装PyQt5从原始站点进行设置
我知道有几个类型的问题,但没有一个帮助我,因为大多数问题都是针对Linux的.
如何使用PyQt5 v5.6 QWebEngineView"渲染"HTML?
我之前使用PyQt5 v5.4.1 QWebPage执行了该任务,但建议尝试使用较新的QWebEngineView.
这是实现(它通常按预期工作,但有一些站点和情况无限期挂起):
def render(source_html):
"""Fully render HTML, JavaScript and all."""
import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWebKitWidgets import QWebPage
class Render(QWebPage):
def __init__(self, html):
self.html = None
self.app = QApplication(sys.argv)
QWebPage.__init__(self)
self.loadFinished.connect(self._loadFinished)
self.mainFrame().setHtml(html)
self.app.exec_()
def _loadFinished(self, result):
self.html = self.mainFrame().toHtml()
self.app.quit()
return Render(source_html).html
import requests
sample_html = requests.get(dummy_url).text
print(render(sample_html))
Run Code Online (Sandbox Code Playgroud)
以下是我尝试使用QWebEngineView.首先,在Ubuntu上安装和设置PyQt5 v5.6:
# install PyQt5 v5.6 wheel from PyPI
pip3 install --user pyqt5
# link missing resources
ln -s ../resources/icudtl.dat ../resources/qtwebengine_resources.pak …Run Code Online (Sandbox Code Playgroud) 我有一个具有登录屏幕的脚本,如果按下取消按钮,我想完全退出应用程序.我试过3种方法:
只有1号才有效.另外两个使对话框变白,然后闪烁然后挂起,我甚至无法切换到其他应用程序.我的代码如下:
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtSql import *
from PyQt5.QtWidgets import *
import csv
import sys
from datetime import datetime, timedelta, time
import os
from ci_co_table import *
from login import *
class Ci_Co(QMainWindow):
"""Check in and check out module"""
def __init__(self, parent=None):
QWidget.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
class Login(QDialog):
"""User login """
def __init__(self):
QDialog.__init__(self)
self.ui = Ui_login_form()
self.ui.setupUi(self)
self.ui.buttonBox.accepted.connect(lambda: self.handle_login(servers=servers))
servers = {}
with open('servers.csv', newline='') as csvfile: …Run Code Online (Sandbox Code Playgroud) 我开发了一些在Python 3.5.4上运行良好的程序,但由于win32的一些错误让我进入Python 3.6.4,但是当我使用pyinstaller构建我的项目时,我得到:
C:\Users\User\Desktop\dist\mycommentator>mycommentator.exe
Traceback (most recent call last):
File "mycommentator.py", line 6, in <module>
File "c:\users\user\appdata\local\programs\python\python36\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 714, in load_module
module = loader.load_module(fullname)
ModuleNotFoundError: No module named 'PyQt5.sip'
[1532] Failed to execute script mycommentator
Run Code Online (Sandbox Code Playgroud)
我试图重新安装python,所以我安装了Python 3.6.4/Python 3.6.5,这个错误也发生在我身上.无论我在PyQt5中构建什么代码,每次都出现此错误.
我也尝试移动sip.pyd到项目文件夹,但仍然发生错误.我也尝试过pip install --upgrade sip,但没有帮助.我也尝试安装pyinstaller的开发版本,这也没有帮助.
我正在尝试QMediaPlayer创建一个..媒体播放器.我希望能够通过按下按钮来回放视频.
但设置负面playbackRate通道QMediaPlayer.setPlaybackRate似乎并没有将视频放回倒带.它只是继续前进.
我不想改变视频的位置,我希望视频以负速度播放.通过我的一些逻辑,设置playbackRate为负值会使视频反向播放.但这不会发生.如果你不能清楚地理解我,这里有一个播放应该是什么样子的视频.
以下是一些重现问题的准系统代码:
import sys
from PyQt5.QtCore import Qt, QUrl, QEvent
from PyQt5.QtMultimedia import QMediaContent, QMediaPlayer
from PyQt5.QtMultimediaWidgets import QVideoWidget
from PyQt5.QtWidgets import QMainWindow, QApplication
class VideoWindow(QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
videoWidget = QVideoWidget()
self.setCentralWidget(videoWidget)
self.mediaPlayer = QMediaPlayer(None, QMediaPlayer.VideoSurface)
self.mediaPlayer.setVideoOutput(videoWidget)
self.mediaPlayer.setMedia(
QMediaContent(QUrl.fromLocalFile(r"<some video file>.mp4"))
)
self.mediaPlayer.play()
app.installEventFilter(self)
def eventFilter(self, source, event):
if event.type() == QEvent.KeyPress:
key = event.key()
if key == …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 PyQt5 编写一个在系统托盘中工作的应用程序。代码有时会引发异常,我需要能够捕获它们。
我希望当应用程序中发生异常时,主事件循环会退出,因此像这样捕获它应该可以工作:
try:
application.exec()
except:
do_stuff()
Run Code Online (Sandbox Code Playgroud)
在下面的例子中,当我按下“Raise”按钮时,我只看到了回溯,但我从来没有看到error catched!打印出来的。
from PyQt5 import QtWidgets, QtGui, QtCore
class ErrorApp():
def __init__(self):
# Init QApplication, QWidet and QMenu
self.app = QtWidgets.QApplication([])
self.widget = QtWidgets.QWidget()
self.menu = QtWidgets.QMenu("menu", self.widget)
# Add items to menu
self.menu_action_raise = self.menu.addAction("Raise")
self.menu_action_raise.triggered.connect(self.raise_error)
self.menu_action_exit = self.menu.addAction("Exit")
self.menu_action_exit.triggered.connect(self.app.exit)
# Create the tray app
self.tray = QtWidgets.QSystemTrayIcon(QtGui.QIcon("logo.png"), self.widget)
self.tray.setContextMenu(self.menu)
# Show app
self.tray.show()
def raise_error(self):
assert False
e = ErrorApp()
try:
e.app.exec()
except:
print("error catched!")
Run Code Online (Sandbox Code Playgroud)
有 2 个类似的问题,但那里的答案没有做我需要做的: …
pyqt5 ×10
python ×9
pyqt ×6
qt ×2
android ×1
exception ×1
icons ×1
module ×1
pyinstaller ×1
pyqtdeploy ×1
python-3.4 ×1
python-3.6 ×1
python-3.x ×1
qmainwindow ×1
qmediaplayer ×1
qt5 ×1
sip ×1