期货日数据维护与使用_日数据维护_界面代码

目录

写在前面

界面图示

​编辑 代码

执行代码


写在前面

本文默认已经创建了项目,如果不知道如何创建一个空项目的,请参看以下两篇博文

PyQt5将项目搬到一个新的虚拟环境中
https://blog.csdn.net/m0_37967652/article/details/122625280
python_PyQt5开发工具结构基础
https://blog.csdn.net/m0_37967652/article/details/131969032

界面图示

 代码

class DailyUpdateWidget(QtWidgets.QWidget):signal_excute = QtCore.pyqtSignal(object)def __init__(self):super().__init__()self.thread: Thread = Noneself.init_data()self.init_ui()self.register_event()self.init_start()passdef init_data(self):self.left_table_headers = ['品种代码', '合约', '交割年', '最新日期']passdef init_ui(self):self.setWindowTitle('日数据更新(优矿)')self.setMinimumHeight(600)self.setMinimumWidth(800)self.caculate_progress = QtWidgets.QProgressBar()self.caculate_status_label = QtWidgets.QLabel()layout_progress = QtWidgets.QHBoxLayout()layout_progress.addWidget(self.caculate_progress)layout_progress.addWidget(self.caculate_status_label)deliYear_tip = QtWidgets.QLabel('设置计算要使用的交割年份:')self.deliYear_spinbox = QtWidgets.QSpinBox()self.deliYear_spinbox.setMinimum(1900)self.deliYear_spinbox.setMaximum(9999)self.deliYear_spinbox.setValue(datetime.datetime.now().year)layout_one = QtWidgets.QHBoxLayout()layout_one.addWidget(deliYear_tip)layout_one.addWidget(self.deliYear_spinbox)layout_one.addStretch(1)choice_symbol_dir_btn = QtWidgets.QPushButton('选择合约所在目录')choice_symbol_dir_btn.clicked.connect(self.choice_symbol_dir_btn_clicked)self.choice_symbol_dir_lineedit = QtWidgets.QLineEdit()self.choice_symbol_dir_lineedit.setReadOnly(True)excute_step_one_btn = QtWidgets.QPushButton('执行')excute_step_one_btn.clicked.connect(self.excute_step_one_btn_clicked)layout_two = QtWidgets.QHBoxLayout()layout_two.addWidget(choice_symbol_dir_btn)layout_two.addWidget(self.choice_symbol_dir_lineedit)layout_two.addWidget(excute_step_one_btn)self.new_symbol_json_down_btn = QtWidgets.QPushButton('新增合约json下载')self.new_symbol_json_down_btn.clicked.connect(self.new_symbol_json_down_btn_clicked)self.append_symbol_json_down_btn = QtWidgets.QPushButton('追加合约json下载')self.append_symbol_json_down_btn.clicked.connect(self.append_symbol_json_down_btn_clicked)self.new_symbol_json_down_btn.setDisabled(True)self.append_symbol_json_down_btn.setDisabled(True)layout_three = QtWidgets.QHBoxLayout()layout_three.addWidget(self.new_symbol_json_down_btn)layout_three.addWidget(self.append_symbol_json_down_btn)choice_symbol_dir_label = QtWidgets.QLabel('提示:从优矿中下载最新的合约列表,放在一个目录中,选择该目录。执行完后,下载要更新的合约json文件')# 分界线 sh_line_one = QtWidgets.QFrame()h_line_one.setFrameShape(QtWidgets.QFrame.HLine)h_line_one.setFrameShadow(QtWidgets.QFrame.Sunken)# 分界线 eself.choice_daily_dir_btn = QtWidgets.QPushButton('选择日数据所在目录')self.choice_daily_dir_btn.clicked.connect(self.choice_daily_dir_btn_clicked)self.choice_daily_dir_btn.setDisabled(True)self.choice_daily_dir_lineedit = QtWidgets.QLineEdit()self.choice_daily_dir_lineedit.setReadOnly(True)excute_step_two_btn = QtWidgets.QPushButton('执行')excute_step_two_btn.clicked.connect(self.excute_step_two_btn_clicked)layout_four = QtWidgets.QHBoxLayout()layout_four.addWidget(self.choice_daily_dir_btn)layout_four.addWidget(self.choice_daily_dir_lineedit)layout_four.addWidget(excute_step_two_btn)choice_daily_dir_label = QtWidgets.QLabel('提示:从优矿在下载待更新的日数据,放在一个目录中,选择该目录')# 分界线 sh_line_two = QtWidgets.QFrame()h_line_two.setFrameShape(QtWidgets.QFrame.HLine)h_line_two.setFrameShadow(QtWidgets.QFrame.Sunken)# 分界线 etip_label = QtWidgets.QLabel('当前在线合约:')refresh_btn = QtWidgets.QPushButton('刷新')refresh_btn.clicked.connect(self.refresh_btn_clicked)download_btn = QtWidgets.QPushButton('下载')download_btn.clicked.connect(self.download_btn_clicked)layout_five = QtWidgets.QHBoxLayout()layout_five.addWidget(tip_label)layout_five.addStretch(1)layout_five.addWidget(refresh_btn)layout_five.addWidget(download_btn)self.left_table = QtWidgets.QTableWidget()self.left_table.setColumnCount(len(self.left_table_headers))self.left_table.setHorizontalHeaderLabels(self.left_table_headers)layout_six = QtWidgets.QVBoxLayout()layout_six.addLayout(layout_five)layout_six.addWidget(self.left_table)log_label = QtWidgets.QLabel('日志:')self.log_textedit = QtWidgets.QTextEdit()self.log_textedit.setReadOnly(True)layout_seven = QtWidgets.QVBoxLayout()layout_seven.addWidget(log_label)layout_seven.addWidget(self.log_textedit)layout_eight = QtWidgets.QHBoxLayout()layout_eight.addLayout(layout_six)layout_eight.addLayout(layout_seven)layout = QtWidgets.QVBoxLayout()layout.addLayout(layout_progress)layout.addLayout(layout_one)layout.addLayout(layout_two)layout.addLayout(layout_three)layout.addWidget(choice_symbol_dir_label)layout.addWidget(h_line_one)layout.addLayout(layout_four)layout.addWidget(choice_daily_dir_label)layout.addWidget(h_line_two)layout.addLayout(layout_eight)self.setLayout(layout)passdef register_event(self):self.signal_excute.connect(self.process_excute_event)passdef process_excute_event(self,data:Dict):mark_str = data['mark_str']passdef init_start(self):self.progress_init()passdef choice_symbol_dir_btn_clicked(self):passdef excute_step_one_btn_clicked(self):passdef new_symbol_json_down_btn_clicked(self):passdef append_symbol_json_down_btn_clicked(self):passdef choice_daily_dir_btn_clicked(self):passdef excute_step_two_btn_clicked(self):passdef refresh_btn_clicked(self):passdef download_btn_clicked(self):passdef start_caculate_thread(self,mark_str:str,data:Dict[str,Any]=None):if self.thread:QtWidgets.QMessageBox.information(self,'提示','线程正在执行任务,请稍后...',QtWidgets.QMessageBox.Yes)returnself.thread = Thread(target=self.running_caculate_thread,args=(mark_str,data,))self.thread.start()self.progress_busy()passdef running_caculate_thread(self,mark_str:str,data:Dict[str,Any]):passdef progress_init(self) -> None:self.caculate_progress.setValue(0)self.caculate_status_label.setText('无任务')def progress_busy(self) -> None:self.caculate_progress.setRange(0, 0)self.caculate_status_label.setText('正在执行')def progress_finished(self) -> None:self.caculate_progress.setRange(0, 100)self.caculate_progress.setValue(100)self.caculate_status_label.setText('执行完毕')passdef closeEvent(self, a0: typing.Optional[QtGui.QCloseEvent]) -> None:self.close()pass

执行代码

if __name__ == '__main__':QtCore.QCoreApplication.setAttribute(QtCore.Qt.HighDpiScaleFactorRoundingPolicy.PassThrough)app = QtWidgets.QApplication(sys.argv)main_window = DailyUpdateWidget()main_window.show()app.exec()pass

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/326432.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

专业级的渗透测试服务,助力航空业数字化安全启航

​某知名航空公司是中国首批民营航空公司之一,运营国内外航线200多条,也是国内民航最高客座率的航空公司之一。在数字化发展中,该航空公司以数据驱动决策,通过精细化管理、数字创新和模式优化等方式,实现了精准营销和个…

特征工程筛选重要变量

特征筛选主要分为3个方法:过滤法、嵌入法(经典的一些树模型比如xgboost)、包裹法(经典的RFECV,RFE递归特征消除法) 过滤法更快速,但更粗糙。 包装法和嵌入法更精确,比较适合具体到算…

直播的前景与发展一

—、直播平台的多样化和专业化 随着互联网技术的不断进步,直播平台正朝着多样化和专业化的方向发展。各类直播平台如雨后春笋般涌现,涵盖了游戏、秀场、教育、电商等多个领域。同时,各平台也在不断深耕细分市场,以满足不同用户群…

海信旗下“隐形冠军”信芯微,授权世强硬创代理32位MCU等产品

近日,世强先进(深圳)科技股份有限公司(下称“世强先进”)与海信集团旗下子公司——青岛信芯微电子科技股份有限公司(下称“信芯微”,英文名:Hi-image)签订授权代理合作协…

网络安全是什么?一文认识网络安全

一、网络安全 1.概念 网络安全从其本质上讲就是网络上的信息安全,指网络系统的硬件、软件及数据受到保护。不遭受破坏、更改、泄露,系统可靠正常地运行,网络服务不中断。 (1)基本特征 网络安全根据其本质的界定&#…

Unity | NGO网络框架

目录 一、相关属性及变量 1.ServerRpc属性 2.ClientRpc属性 3.NetworkVariable变量 二、相关组件 1.NetworkManager 2.Unity Transport 3.Network Object 4.NetworkBehaviour: 5.NetworkTransform Syncing(Synchronizing) Thresholds Interpolation 三…

工智能基础知识总结-- 什么是Seq2Seq

什么是Seq2Seq Seq2Seq模型,全称Sequence to sequence,由Encoder和Decoder两个部分组成,每部分都是一个RNNCell(RNN、LSTM、GRU等)结构。Encoder将一个序列编码为一个固定长度的语义向量,Decoder将该语义向量解码为另一个序列。输入序列和输出序列都可以是不定长序列。 S…

抖店怎么上架商品?流程如下,附现阶段打单发货教程

我是王路飞。 做无货源抖店的商家,怎么上架商品呢? 其实你店铺内的商品都是利用软件从别的平台内采集而来的,加价卖出赚取差价而已。 可以使用软件一件上架,或者是在抖店后台手动上架,这个看你们自己了,…

九州金榜|孩子厌学是家庭原因吗?

孩子厌学是有多种表现的,家长千万不要以为只有孩子退学了才算有了厌学情绪: 1、轻度厌学:主要表现为不喜欢学习,对学习有抵触,上课注意力不集中,课下不完成作业、抄作业或者应付作业等,轻度厌学…

【论文笔记】LiDAR-based 4D Occupancy Completion and Forecasting

原文链接:https://arxiv.org/abs/2310.11239 I. 引言 占用体素网格相关的感知任务主要有语义场景补全(SSC)和占用预测。SSC能预测可见区域和不可见区域的语义,而占用预测则预测场景的时间变化。两个任务均基于部分观测&#xff…

【Redis端口】通过修改端口一个计算机上可以运行两个redis

一个计算机上可以运行多个Redis实例。每个Redis实例都会监听一个特定的端口,所以只要确保每个实例使用的端口不冲突,就可以在同一台计算机上运行多个Redis实例。例如,你可以配置一个Redis实例监听6379端口,另一个Redis实例监听638…

玩转Mysql 二(MySQL的目录结构与表结构)

一路走来,所有遇到的人,帮助过我的、伤害过我的都是朋友,没有一个是敌人。 一、MYSQL目录结构及命令存放路径 1、查看MYSQL数据文件存放路径 mysql> show variables like datadir; 注意:生成环境要提前规划好数据存放目录,存储一般以T为单位闪盘。 2、MYSQL命令存放…