cxinping / pyqt5 Goto Github PK
View Code? Open in Web Editor NEW《PyQt5快速开发与实战》配套代码
《PyQt5快速开发与实战》配套代码
Qt Designer如何在Tab Widget中使用QtWebEngineWidgets
在Chapter09的MatplotlibWidget.py文件运行报错,信息如下: File "C:\Users\bisho\Downloads\Compressed\PyQt5-master\PyQt5-master\Chapter09\MatplotlibWidget.py", line 27, in init self.axes.hold(False) # 每次绘图的时候不保留上一次绘图的结果 AttributeError: 'AxesSubplot' object has no attribute 'hold'。
这是matplotlib的问题吗?请问具体怎么解决?
在win10 64位系统上,使用仓库中百度云分享压缩包的开发环境。
版本 Windows 10 专业版
版本号 21H2
安装日期 2021/10/27
操作系统内部版本 19044.1620
体验 Windows Feature Experience Pack 120.2212.4170.0
采用方案绕开:
新建一个pyuic_Scanner_main.bat文件,内容如下Scanner_main.ui为要编译的窗体的名字
@D:/WinPyQt5.9-32bit-3.5.3.1/python-3.5.3\python.exe -m PyQt5.uic.pyuic -o Scanner_main.py Scanner_main.ui
双击bat文件,运行,得到Scanner_main.py 这一窗体编译结果。
class ****(QWidget):
def init(self,parent=None):
super().init(parent)
......
例如书上的例子有按alt键改窗口标题的。但是如何检测例如 ctrl + c ctrl +v 这种按键信号呢?
4.2.2 名称是常用的几何机构
应该是
常用的几何结构
WIndow 10 64 位
Python 3.5.1 32位
导入PyQt5时报错:
ImportError: DLL load failed: 找不到指定的程序。
老师知道具体原因是什么吗?
我电脑没有D盘,不能用您的绿色包
def mouseMoveEvent(self, event):
# 鼠标左键按下的同时移动鼠标
if event.buttons() and Qt.LeftButton :
self.endPoint = event.pos()
#进行重新绘制
self.update()
这个条件 if 的两项在使用中键右键拖动同样触发, 应该要像其他几个判断一样 == 就好了,
谁知道树莓派怎么安装pyqt5 播放视频?
特别需要:-D
书中案例8-3(双缓存绘图)代码看意图是否以下此处需改为 深拷贝:
PyQt5/Chapter08/qt08_winDraw03.py
目前为:
# 将以前pix中的内容复制到tempPix中,保证以前的内容不消失
self.tempPix = self.pix
是否应改为 :
# 将以前pix中的内容复制到tempPix中,保证以前的内容不消失
self.tempPix = self.pix.copy(self.pix.rect())
否则按目前的形式感觉导致 tempPix 和 pix 引用(操作)的其实是同一块内存。
报错
RuntimeError: the sip module implements API v12.0 to v12.6 but the PyQt5.QtWebEngineWidgets module requires API v12.7
pyqt版本从5.11.3 更新到 PyQt5-5.14.0之后如下代码相同的刷新数据,更新速度变慢了10倍
版本 5.14
2019-12-30 10:36:03.627884
2019-12-30 10:36:03.828350
版本 5.11
2019-12-30 10:38:07.485788
2019-12-30 10:38:07.512682
不知道出了什么情况
`
class QtGuiThreadBackend(QThread):
"""更新数据类"""
update = pyqtSignal(dict)
def __init__(self, log, share_dict, freq=0.5, parent=None):
super().__init__(parent)
self.log = log
# 刷新频率
self.freq = freq
# 通讯端口
self.share_dict = share_dict
def run(self):
while True:
display_dict = self.share_dict.copy()
self.update.emit(display_dict)
self.log.info("update gui display data!")
sleep(self.freq)
`
`
from datetime import datetime
from time import sleep
from PyQt5.QtCore import pyqtSignal, QThread, QCoreApplication
from .ConsoleETFOptionSingle import ModQtGuiConsole as RiskConsole
from ..iGuiDesigner.RiskMain import Ui_MainWindow
class QtGuiFrontend(Ui_MainWindow):
def init(self, main_windows, share_dict, map_list):
self.setupUi(main_windows)
self.share_dict = share_dict
self.risk_console_1 = self.init_risk_console_1("gui_console_dict_rv1", self.share_dict, map_list)
# 50ETF 510050 标的切换
self.radioButtonA1.setChecked(True)
self.radioButtonA3.setChecked(True)
self.radioButtonA5.setChecked(True)
self.radioButtonA7.setChecked(True)
self.pushButtonA1.clicked.connect(self.run_pushButtonA1)
self.run_pushButtonA1()
# 300ETF 510300 标的切换
self.radioButtonB1.setChecked(True)
self.radioButtonB3.setChecked(True)
self.radioButtonB5.setChecked(True)
self.radioButtonB7.setChecked(True)
self.pushButtonB1.clicked.connect(self.run_pushButtonB1)
self.run_pushButtonB1()
# 300ETF IO 标的切换
self.radioButtonC1.setChecked(True)
self.radioButtonC3.setChecked(True)
self.radioButtonC5.setChecked(True)
self.radioButtonC7.setChecked(True)
self.radioButtonC9.setChecked(True)
self.radioButtonC11.setChecked(True)
self.pushButtonC1.clicked.connect(self.run_pushButtonC1)
self.run_pushButtonC1()
# 300ETF IO 标的切换
self.radioButtonD1.setChecked(True)
self.radioButtonD3.setChecked(True)
self.radioButtonD5.setChecked(True)
self.radioButtonD7.setChecked(True)
self.pushButtonD1.clicked.connect(self.run_pushButtonD1)
self.run_pushButtonD1()
def init_risk_console_1(self, name, share_dict, map_list):
risk_console = RiskConsole(name, share_dict, map_list)
risk_console.setupUi(self.tab)
risk_console.init_pos_table()
risk_console.init_future_table()
risk_console.init_button()
risk_console.init_greeks_table()
return risk_console
def set_ui_title(self, MainWindow, title_name):
_translate = QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", title_name))
def run_pushButtonA1(self):
"""
标的切换
:return:
"""
pcp_flag = [True, True, True, True]
if self.radioButtonA1.isChecked():
pcp_flag[0] = True
else:
pcp_flag[0] = False
if self.radioButtonA3.isChecked():
pcp_flag[1] = True
else:
pcp_flag[1] = False
if self.radioButtonA5.isChecked():
pcp_flag[2] = True
else:
pcp_flag[2] = False
if self.radioButtonA7.isChecked():
pcp_flag[3] = True
else:
pcp_flag[3] = False
self.risk_console_1.t1_dict["pcp_flag"] = pcp_flag
self.share_dict["gui_console_dict_rv1"] = self.risk_console_1.share_dict
self.statusbar.showMessage('Modify Underlying Type {}'.format(
datetime.now().strftime("%Y-%m-%d %H:%M%S %f")))
def run_pushButtonB1(self):
"""
标的切换
:return:
"""
pcp_flag = [True, True, True, True]
if self.radioButtonB1.isChecked():
pcp_flag[0] = True
else:
pcp_flag[0] = False
if self.radioButtonB3.isChecked():
pcp_flag[1] = True
else:
pcp_flag[1] = False
if self.radioButtonB5.isChecked():
pcp_flag[2] = True
else:
pcp_flag[2] = False
if self.radioButtonB7.isChecked():
pcp_flag[3] = True
else:
pcp_flag[3] = False
self.risk_console_1.t2_dict["pcp_flag"] = pcp_flag
self.share_dict["gui_console_dict_rv1"] = self.risk_console_1.share_dict
self.statusbar.showMessage('Modify Underlying Type {}'.format(
datetime.now().strftime("%Y-%m-%d %H:%M%S %f")))
def run_pushButtonC1(self):
"""
标的切换
:return:
"""
pcp_flag = [True, True, True, True, True, True]
if self.radioButtonC1.isChecked():
pcp_flag[0] = True
else:
pcp_flag[0] = False
if self.radioButtonC3.isChecked():
pcp_flag[1] = True
else:
pcp_flag[1] = False
if self.radioButtonC5.isChecked():
pcp_flag[2] = True
else:
pcp_flag[2] = False
if self.radioButtonC7.isChecked():
pcp_flag[3] = True
else:
pcp_flag[3] = False
if self.radioButtonC9.isChecked():
pcp_flag[3] = True
else:
pcp_flag[3] = False
if self.radioButtonC11.isChecked():
pcp_flag[3] = True
else:
pcp_flag[3] = False
self.risk_console_1.t3_dict["pcp_flag"] = pcp_flag
self.statusbar.showMessage('Modify Underlying Type {}'.format(
datetime.now().strftime("%Y-%m-%d %H:%M%S %f")))
def run_pushButtonD1(self):
"""
标的切换
:return:
"""
pcp_flag = [True, True, True, True]
if self.radioButtonD1.isChecked():
pcp_flag[0] = True
else:
pcp_flag[0] = False
if self.radioButtonD3.isChecked():
pcp_flag[1] = True
else:
pcp_flag[1] = False
if self.radioButtonD5.isChecked():
pcp_flag[2] = True
else:
pcp_flag[2] = False
if self.radioButtonD7.isChecked():
pcp_flag[3] = True
else:
pcp_flag[3] = False
self.risk_console_1.t4_dict["pcp_flag"] = pcp_flag
self.statusbar.showMessage('Modify Underlying Type {}'.format(
datetime.now().strftime("%Y-%m-%d %H:%M%S %f")))
"""后台更新程序"""
def update_item_data(self, display_dict):
risk_data_510050_rv1 = display_dict["risk_data_510050_rv1"]
if risk_data_510050_rv1 is not None:
self.risk_console_1.update_t1(*risk_data_510050_rv1)
print(datetime.now())
risk_data_510300_rv1 = display_dict["risk_data_510300_rv1"]
if risk_data_510300_rv1 is not None:
self.risk_console_1.update_t2(*risk_data_510300_rv1)
print(datetime.now())
# """中金所 沪深300期权"""
# risk_data_io_rv1 = display_dict["risk_data_io_rv1"]
# if risk_data_io_rv1 is not None:
# self.risk_console_1.update_t3(*risk_data_io_rv1)
#
# # 深交所 沪深300 ETF期权
# risk_data_159919_rv1 = display_dict["risk_data_159919_rv1"]
# if risk_data_159919_rv1 is not None:
# self.risk_console_1.update_t4(*risk_data_159919_rv1)
self.statusbar.showMessage('update-{}'.format(
datetime.now().strftime("%Y-%m-%d %H:%M:%S %f")))
class QtGuiThreadBackend(QThread):
"""更新数据类"""
update = pyqtSignal(dict)
def __init__(self, log, share_dict, freq=0.5, parent=None):
super().__init__(parent)
self.log = log
# 刷新频率
self.freq = freq
# 通讯端口
self.share_dict = share_dict
def run(self):
while True:
display_dict = self.share_dict.copy()
self.update.emit(display_dict)
self.log.info("update gui display data!")
sleep(self.freq)
`
试运行了下appendix和Chapter03的国际化例子,均显示为英文。请问是否是我运行方式有问题?
环境:win10,python3.6
win7 64位下使用WinPyQt5.9-32bit-3.5.3.1 绿色包,pythonw.exe CUP占用率高
建议弄个64位的,绿色安装包真的省心。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.