当前位置: 首页 > 工具软件 > pyminer > 使用案例 >

pyminer图形界面开发日志

秦伯寅
2023-12-01


1、 def bind_show_data(self, on_show_data):
self.var_tree.show_data = on_show_data
像这样的方法是不太好的,希望直接绑定信号和槽,这样可以减少耦合。
比如下面这样:
self.var_tree.show_data_signal.connect(self.on_show_data)
这样可以实现一对多的信号发送。

2、控件叠放位置需要当心一下。可以叠放之后直接显示到最上层。

3、控件的属性:
对于停靠窗口:
(1)、close_action:str,可以是‘delete’或者‘hide‘。若无此属性,则默认为’hide‘。这个可以写在json里面。
(2)、dock_with:str
(1)、setup_ui,为设置界面启动时的方法。
(2)、bind_events,为界面绑定事件的方法。
对于菜单或者按钮:
(1)、setup_ui,界面启动初始化方法
(2)、bind_events,为界面绑定事件的方法。

4、希望有这样的规定:bind_events方法最好绑定其他控件或者插件在事件中发出的信号,而不是直接调用其他控件的方法。这样可以减少控件之间的耦合。建议采用信号和槽机制,不要采用像1那样的显式的绑定方式。

5、关于窗口关闭时的垃圾回收机制。

接下来要对各个控件定义一些事件的名称。
所有按钮的名称如下:

PyMiner自带的可停靠子窗口名称:

中文名称程序内部名称
编辑器code_editor
ipython控制台ipython_console
工作空间显示器workspace_inspector
变量视图data_view_table
文件树file_explorer

这些控件都有便捷的借口函数方式对其进行访问。将它们的名称列在这里的原因是,
插件和以上系统自带的控件,名称不能相同

Pyminer工具栏中按钮的获取

主页工具栏

内部名称中文名称
‘button_new_script’‘新建\n脚本’
‘button_new’‘新建’
‘button_open’‘打开’
‘button_import_data’‘导入\n数据’,
‘button_save_workspace’‘保存\n工作区’,
‘button_new_variable’‘新建变量’
‘button_open_variable’‘打开变量’
‘button_clear_workspace’‘清除工作区’
‘button_search_for_files’‘查找文件’
‘button_compare_files’‘文件比较’
‘button_settings’‘设置’
‘button_help’‘帮助’
‘view_config’‘视图’

接下来的任务

是否可以定义一个打开文本文件的通用接口

也就是一个跨平台的类。这个类可以做到在不同的平台上打开文本文件、调用控制台和文件管理器等。参考novalide。

定义一套标准的控件集

标准控件集包含很多内容,参考sciwx,但是这种标准的控件集需要很大的功夫去维护。
定义一种用json或者仿照json的菜单生成方法。
发展一种菜单控件的获取方法。

定义一套主界面上所有控件的标准方法。

对话框由插件自己生成;
可停靠窗口由json决定,关闭时可以定义其是否被回收。

已经完成的任务

窗口垃圾回收

1、目前,工作空间变量显示的垃圾回收存在问题。当全部的标签页都关闭后,会出现bug。而且窗口没有办法在添加标签页的时候最上层显示。(问题解决,增加了将窗体提升到最顶层的函数,以及增加了窗口删除的办法。)

控件如何提升为可见?

2、定义控件的获取焦点方法,使得它的控件可以将其显示到上方。(需要给这个方法起一个名字!)
可否做一个多继承的方法?

工作空间要求:显示表格

表格按照数据大小判断,小数据量就用TableWidget,大数据量用TableWidget

任务

简化为四个位置

翻译

制作应用管理菜单

制作绘图菜单

QSS美化,为控件设置ObjectName

如何用json生成菜单?

插件的json设置到底要包括哪些东西?

翻译!

(需要和插件接口说明一下)

标准控件集

用伪类或者属性选择器进行动态qss的编写!

 类似资料: