https://github.com/liaokongvfx/quicker
快捷启动器
https://github.com/liaokongvfx/quicker
launcher pyqt pyside
Last synced: 3 months ago
JSON representation
快捷启动器
- Host: GitHub
- URL: https://github.com/liaokongvfx/quicker
- Owner: liaokongVFX
- Created: 2021-01-24T09:34:50.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2021-02-17T11:13:01.000Z (over 4 years ago)
- Last Synced: 2025-04-08T12:06:15.127Z (6 months ago)
- Topics: launcher, pyqt, pyside
- Language: Python
- Homepage:
- Size: 24 MB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Quicker

## 简介
这个项目是一个类似于wox的快捷启动器。
项目使用python2.7构建,依赖了`PySide2`、`Apscheduler`、`requests`三个第三方库,需要使用`pip`进行安装。## 插件说明
1.translation action 是基于百度的api开发的,所以需要在secret_config中进行相关的api配置
2.everything plugin 是基于everything开发的,所以在使用时需要先打开everything软件,否则无法搜索到文件## 插件编写
插件主要分为两类:`plugin`和`action`
### plugin插件
首先在`plugins`文件夹下建一个你插件名称的带有__init__.py文件的python包,
然后在包中的`__init__.py`文件写入入口类:
```python
from core import register
from core.plugin_base import AbstractPlugin
from result_item import ResultItem@register # 文件中可以写入多个类,但是使用register装饰器装饰过的类会被当做插件进行加载
class EverythingPlugin(AbstractPlugin): # 插件需要继承AbstractPlugin父类
title = u'搜索文件' # 插件的名称(必填)
description = u'需要打开everthing才能使用' # 插件的描述(必填)
keyword = 'find' # 插件的关键字(必填)
icon = '' # 插件对应的图标路径(选填),使用相对路径即可,比如这个包下面的img放了对应的图标icon.png,只需要写做 icon = 'img/icon.png'
shortcut = '' # 插件对应的快捷键 (选填)def run(self, text, result_item, plugin_by_keyword):
"""
必须实现的方法,这个方法会在line edit回车或者下拉列表被点击时执行
Args:
text: line edit中的文字会按空格分成两个部分,text 就是空格后面的部分,比如cd python,那么text的值就是python
result_item: 当前选中的下拉列表中的item
plugin_by_keyword: 关键字和插件对象所组成的字典
Returns: 这里只能返回两种情况,一种是什么也不返回,一种是返回ResultItem列表,返回ResultItem列表会被展示到下拉菜单中
"""
passdef query(self, text):
"""
非必须实现的方法,这个方法会在line edit文字修改时(textChanged)触发
Args:
text: ine edit中的文字会按空格分成两个部分,text 就是空格后面的部分,比如cd python,那么text的值就是python
Returns: 这里只能返回两种情况,一种是什么也不返回,一种是返回ResultItem列表,返回ResultItem列表会被展示到下拉菜单中
"""
pass
```### action插件
首先在`actions`文件夹下建一个你插件名称的带有__init__.py文件的python包,
然后在包中的`__init__.py`文件写入入口类:
```python
from core import register
from core.action_base import AbstractAction, TEXT@register
class TranslationAction(AbstractAction):
title = '' # 插件名称(必填)
description = '' # 插件描述(必填)
action_types = [] # 插件类型(必填),也就是当什么时候来显示这个插件,
# 这里分为4种,EMPTY(什么都不选)/TEXT(选中文字)/MULT_FILES(选中多个文件)/FILE(选中单个文件),
# 比如我的这个插件需要在什么都不选,或者选中文字的时候显示,那么action_types = [EMPTY, TEXT]
exts = [] # 处理什么类型后缀的文件(选填),这个选项只在action_types中设置了FILE的时候起作用
icon = '' # 插件对应的图标路径(选填),使用相对路径即可,比如这个包下面的img放了对应的图标icon.png,只需要写做 icon = 'img/icon.png'def run(self, data):
"""
必须实现的方法,这个方法会在插件被点击时执行
Args:
data: 当什么也不选时,这个值为空;当选择文字时,这个值就是选中的文字;当选中文件时,这个值就是文件路径列表
"""
pass
```## 未来会实现的
Plugin TODO
- [x] 添加网页搜索插件
- [x] 添加执行cmd命令插件
- [x] 添加截图插件
- [ ] 添加离线翻译插件
- [x] 集成everything
- [ ] 日事清插件(支持定时任务)
- [x] 添加打开路径插件Action TODO
- [x] 划词翻译
- [x] 划词搜索
- [x] 划词设置提醒
- [x] 添加拾色插件