def init_ui(self): # 函数加载器 loader = FunctionLoader() # 得到并拼凑 function.xlsx 文件路径 running_path = Path(sys.argv[0]).parent function_file = running_path.joinpath("function.xlsx") # 加载函数描述文件 loader.load_excel(function_file) # 得到实际内容 self.function_dict = loader.contents self.function_names = loader.names # 实例化列表视图 # 头部标题 title = QtWidgets.QTextEdit() title.setPlainText("函数列表") title.setAlignment(QtCore.Qt.AlignCenter) title.setReadOnly(True) title_box = QtWidgets.QVBoxLayout() title_box.addWidget(title) # 初始化列表视图 list_view = QtWidgets.QListView() # 修改双击触发器为空 list_view.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers) # 实例化列表模型,添加数据 list_model = QtCore.QStringListModel() # 设置模型列表视图,加载数据列表 list_model.setStringList(self.function_names) # 设置列表视图的模型 list_view.setModel(list_model) # 连接鼠标单击信号到 set_function_textarea 函数 list_view.clicked.connect(self.set_function_textarea) # 连接鼠标双击信号到具体事件 list_view.doubleClicked.connect(self.doubleClickedEvent) # 设置函数列表和函数内容窗口 func_content = QtWidgets.QHBoxLayout() func_list_box = QtWidgets.QHBoxLayout() func_list_box.addWidget(list_view) self.function_textarea = QtWidgets.QTextEdit() self.function_textarea.setReadOnly(True) # 设置启动的初始值 detail_text = self.get_function_detail(0) self.function_textarea.setPlainText(detail_text) detail_box = QtWidgets.QHBoxLayout() detail_box.addWidget(self.function_textarea) func_content.addLayout(func_list_box) func_content.addLayout(detail_box) func_content.setStretch(0, 2) func_content.setStretch(1, 5) self.addLayout(title_box) self.addLayout(func_content) self.setStretch(0, 1) self.setStretch(1, 19)
def init_ui(self): # 实例化列表视图 title = QtWidgets.QTextEdit() title.setPlainText("已存策略") title.setAlignment(QtCore.Qt.AlignCenter) title.setReadOnly(True) title_box = QtWidgets.QVBoxLayout() title_box.addWidget(title) self.strategy_list_view = ListView() # 实例化列表模型,添加数据 self.strategy_list_model = QtCore.QStringListModel() # item 单击事件 self.strategy_list_view.clicked.connect(self.set_script_textarea) # item 双击事件 self.strategy_list_view.doubleClicked.connect( self.double_clicked_event) # 取消双击触发器 self.strategy_list_view.setEditTriggers( QtWidgets.QAbstractItemView.NoEditTriggers) # 连接删除动作 self.strategy_list_view.connect_delete_action(self.delete_action) # 连接重命名动作 self.strategy_list_view.connect_rename_action(self.rename_action) # 初始化策略列表 self.update_list() # 设置列表和内容窗口 file_content = QtWidgets.QHBoxLayout() file_list_box = QtWidgets.QHBoxLayout() file_list_box.addWidget(self.strategy_list_view) self.script_textarea = QtWidgets.QTextEdit() self.script_textarea.setReadOnly(True) # 设置启动的初始值 script_content = self.get_script_content(0) self.script_textarea.setPlainText(script_content) detail_box = QtWidgets.QHBoxLayout() detail_box.addWidget(self.script_textarea) file_content.addLayout(file_list_box) file_content.addLayout(detail_box) file_content.setStretch(0, 2) file_content.setStretch(1, 5) self.addLayout(title_box) self.addLayout(file_content) self.setStretch(0, 1) self.setStretch(1, 19)