mirror of
https://github.com/TriM-Organization/Musicreater.git
synced 2024-11-11 01:27:35 +08:00
153 lines
6.3 KiB
Markdown
153 lines
6.3 KiB
Markdown
开发说明\|指南
|
||
==============
|
||
|
||
此文件旨在使后期欲参与开发之人员减轻其开发负担,同时也为了我们正在开发的人员详细说明功能与用法
|
||
掌握开发指南之后,在调用函数等的过程中将会更加方便
|
||
|
||
文件结构
|
||
--------
|
||
|
||
从主文件调用display.py以实现显示,调用functions.py以使用功能
|
||
|
||
functions.py中会调取./addon/目录下的全部功能文件,这些功能文件必须先由./addon/addons.pkl来预先定义好
|
||
|
||
详细说明
|
||
--------
|
||
|
||
### msctLib
|
||
|
||
用于支持主要功能
|
||
|
||
#### display.py
|
||
|
||
1. class disp
|
||
|
||
- 参数
|
||
|
||
1. `**kwgs`对窗口的基础设定 `{ '组件名称' : 函数自设定 }` 例如:
|
||
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ python
|
||
{
|
||
'version': '0.0.1', # version指的是当前配置格式的版本
|
||
'title': "音·创",
|
||
'geometry': '1200x900',
|
||
'iconbitmap': ('./resources/musicreater.ico', './resources/musicreater.ico'),
|
||
'menu' : { #对setMenu有特殊说明
|
||
'文件': {
|
||
'新建': <function>,
|
||
'打开': <function>,
|
||
},
|
||
},
|
||
'widget': { #对窗口部件又详细说明
|
||
'wordview':{
|
||
'text':'言·论',
|
||
},
|
||
'settingbox':{}, #后文详细说明
|
||
'tracklist':{},
|
||
'operation':{},
|
||
'map':{},
|
||
},
|
||
}
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
||
- 变量
|
||
|
||
1. root
|
||
窗口根,即一个Tk类,注意,外部调用请不要直接访问窗口根
|
||
因为这可不一定是Tk的类,加载其他窗口组件的话就是其他的
|
||
了。
|
||
2. title
|
||
窗口标题,字符串
|
||
3. menuWidgets
|
||
对于窗口菜单的设定,其格式详见下方`setMenu`函数
|
||
4. wordView
|
||
显示在言论上的文字,字符串
|
||
5. buttons
|
||
快捷功能按钮的列表,列表的元素为字典,字典的键是按钮的名称,值为一个元组,元组中含有两个元素,其中元组的第1个元素为按钮图标,是一个图片的路径;第2个元素为执行的函数,其值应当是一个函数对象。
|
||
```python
|
||
button: list = [ # 操作按钮部分
|
||
dict = {
|
||
按钮名称 : tuple(按钮图标,执行函数)
|
||
},
|
||
],
|
||
```
|
||
6. settingBox
|
||
设置框,用于设置音乐的基本属性,例如词作者,曲作者等
|
||
|
||
|
||
- 函数
|
||
|
||
1. `setMenu`对菜单的基础设定
|
||
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ python
|
||
{
|
||
菜单名 : {
|
||
选项名 : 选项函数
|
||
}
|
||
}
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
||
注:
|
||
`菜单名` : `str` 显示在菜单上的字符串
|
||
`选项名` : `str` 显示在菜单选项上的字符串
|
||
`选项函数` : `function` 菜单调取的函数(无返回值,无入参)
|
||
当 `选项名` 的布尔值判定为 `False` 的时候,无论 `选项函数` 为何,皆插入一段分割线,但 `选项函数` 不得为空
|
||
|
||
2. `setWidget`对窗口部件的放置
|
||
```python
|
||
wordview: dict = { #言论部分显示的字样
|
||
'text': str = 显示内容,
|
||
# ... 即可用 tk.Label 的参数
|
||
},
|
||
button: list = [
|
||
dict = {
|
||
按钮名称 : tuple(按钮图标,执行函数)
|
||
},
|
||
],
|
||
settingbox: list = [ #设置部分显示的字样及其对应的设置函数
|
||
(
|
||
设置名称:str,
|
||
值类型:tuple,
|
||
显示内容:str,
|
||
设置操作函数:<function>,
|
||
)
|
||
],
|
||
map: list = [
|
||
音符数据
|
||
]
|
||
```
|
||
注:
|
||
|
||
上文中,值类型可以是如下几个项
|
||
1. `('str',)` 字符串类型,使用文本框输入数据
|
||
2. `('bool',)` 布尔类型,使用复选框输入数据
|
||
3. `('num',最小值:int,最大值:int,步长:int = 1)` 数值类型,使用数值滑动条输入数据
|
||
4. `('list',列表项:list)` 单选类型,即列表中多选一,使用单选框输入数据
|
||
|
||
值得注意的是,在kwgs中修改的部件设置,可以在其变量中读取或热修改,对应的变量如下
|
||
|
||
| 参数 | 对应类中的变量 | 变量类型 | 说明 |
|
||
|------------|------------------|---------------------------|---------------------|
|
||
| wordview | wordview | str | 显示在 言·论 区域的文字 |
|
||
| button | button | list[dict{}] | 操作按钮 |
|
||
| settingbox | settings | list[ Any ] | 设置项目中的值 |
|
||
| tracklist | tracknum | tuple(int,int) | 当前选择到的音轨与音轨总数|
|
||
| map | notes | list[ class Note ] | 当前的音符列表 |
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
# 这里是全局设置
|
||
'name' : str, #项目名,即包名
|
||
'title': str, #音乐名称
|
||
'repeation': bool, #是否开启重复播放
|
||
'player_selection': str, #玩家选择器,用于选择播放的的玩家
|
||
# 下面是音轨独立设置
|
||
'track_name': str, #此音轨的名字
|
||
'track_sbname': str, #此音轨所使用的计分板
|
||
- 变量
|
||
使用类中的变量可以对类中的内容进行实时修改
|