Use this module to convert a cli program to a gui
Project description
Python.Cli2Gui
Use this module to convert a CLI program to a GUI
- Comparison to similar projects
- Roadmap
- Changelog
- Decorator
- Using the decorator in your project
- Install With PIP
- Language information
- Install Python on Windows
- Install Python on Linux
- How to run
- Download
- Licence
- Screenshots
Comparison to similar projects
Do let me know if any of these are incorrect. Some of the comparisons are based off documentation/ the readme
Argparser | Cli2Gui | Gooey | Quick |
---|---|---|---|
Argparse | :heavy_check_mark: | :heavy_check_mark: | X |
Optparse | :heavy_check_mark: | X | X |
DocOpt | X [Planned] | X | X |
Click | X [Planned] | X | :heavy_check_mark: |
GetOpt | :heavy_check_mark: | X | X |
Basic GUI | Cli2Gui | Gooey | Quick |
---|---|---|---|
Override name/ description | :heavy_check_mark: | :heavy_check_mark: | ? |
Theming | :heavy_check_mark: | Limited | ? |
DarkMode | :heavy_check_mark: | X | :heavy_check_mark: |
Window Size | :heavy_check_mark: | :heavy_check_mark: | X |
Element Size | :heavy_check_mark: | X | X |
Custom Images | :heavy_check_mark: | :heavy_check_mark: | ? |
Cli2Gui is pretty lacking in these features and will probably remain that way to ease maintainability - the primary aim is to support multiple argparse libraries over fancy widgets
Advanced GUI | Cli2Gui | Gooey | Quick |
---|---|---|---|
Dropdown | X | :heavy_check_mark: | :heavy_check_mark: |
Slider | X | :heavy_check_mark: | :heavy_check_mark: |
Tabs | X | :heavy_check_mark: | :heavy_check_mark: |
Menus | X | :heavy_check_mark: | X |
Max Args before Scroll | :heavy_check_mark: | X | X |
Roadmap
For completed components, see the changelog (link below)
Feature | Description | Status |
---|---|---|
DocOpt | https://github.com/docopt/docopt | Created file with TODO |
Click | https://github.com/pallets/click | Created file with TODO |
Gui-Menus | Menu with help text and readme | - |
Theme file | Pass a base24 scheme file | - |
run_function=Null | Run once if a run function isn't specified | - |
Changelog
See the CHANGELOG for more information.
Decorator
Cli2Gui(run_function, auto_enable=False, argparser="argparse", theme=None, darkTheme=None, sizes=None, image=None,
program_name=None, program_description=None, max_args_shown=5, **kwargs):
Using the decorator in your project
run_function (required)
The name of the function to call eg. func(args)
def main(args):
print(args.arg)
@Cli2Gui(run_function=main)
def cli():
parser = argparse.ArgumentParser(description="this is an example parser")
parser.add_argument("arg", type=str,
help="positional arg")
args = parser.parse_args()
main(args)
auto_enable (optional)
Enable the GUI by default. If enabled by default requires --disable-cli2gui
, otherwise requires --cli2gui
@Cli2Gui(auto_enable=False)
argparser (optional)
Override the argparser to use, defaults to argparse. Current options are: "argparse", "getopt", "optparse"
@Cli2Gui(argparser="argparse")
theme (optional)
Set a base24 theme
@Cli2Gui(theme=["#e7e7e9", "#dfdfe1", "#cacace", "#a0a1a7", "#696c77",
"#383a42", "#202227", "#090a0b", "#ca1243", "#c18401", "#febb2a",
"#50a14f", "#0184bc", "#4078f2", "#a626a4", "#986801", "#f0f0f1",
"#fafafa", "#ec2258", "#f4a701", "#6db76c", "#01a7ef", "#709af5",
"#d02fcd",])
darkTheme (optional)
Set a base24 dark theme variant
@Cli2Gui(darkTheme=["#282c34", "#3f4451", "#4f5666", "#545862", "#9196a1",
"#abb2bf", "#e6e6e6", "#ffffff", "#e06c75", "#d19a66", "#e5c07b",
"#98c379", "#56b6c2", "#61afef", "#c678dd", "#be5046", "#21252b",
"#181a1f", "#ff7b86", "#efb074", "#b1e18b", "#63d4e0", "#67cdff",
"#e48bff",])
sizes (optional)
Set the UI sizes such as the button size
@Cli2Gui(sizes={
"title_size": 28,
"label_size": (30, None),
"input_size": (30, 1),
"button":(10, 1),
"padding":(5, 10),
"helpText_size": 14,
"text_size": 11
})
image (optional)
Set the program icon. File extensions can be any that PIL supports
@Cli2Gui(image="path/to/image.png")
program_name (optional)
Override the program name
@Cli2Gui(program_name="custom name")
program_description (optional)
Override the program description
@Cli2Gui(program_description="this is a custom description")
max_args_shown (optional)
Maximum number of args shown before using a scrollbar
@Cli2Gui(max_args_shown=5)
Install With PIP
pip install cli2gui
Head to https://pypi.org/project/cli2gui/ for more info
Language information
Built for
This program has been written for Python 3 and has been tested with Python version 3.8.0 https://www.python.org/downloads/release/python-380/.
Install Python on Windows
Chocolatey
choco install python
Download
To install Python, go to https://www.python.org/ and download the latest version.
Install Python on Linux
Apt
sudo apt install python3.8
How to run
With VSCode
- Open the .py file in vscode
- Ensure a python 3.8 interpreter is selected (Ctrl+Shift+P > Python:Select Interpreter > Python 3.8)
- Run by pressing Ctrl+F5 (if you are prompted to install any modules, accept)
From the Terminal
./[file].py
Download
Clone
Using The Command Line
- Press the Clone or download button in the top right
- Copy the URL (link)
- Open the command line and change directory to where you wish to clone to
- Type 'git clone' followed by URL in step 2
$ git clone https://github.com/FredHappyface/Python.Cli2Gui
More information can be found at https://help.github.com/en/articles/cloning-a-repository
Using GitHub Desktop
- Press the Clone or download button in the top right
- Click open in desktop
- Choose the path for where you want and click Clone
More information can be found at https://help.github.com/en/desktop/contributing-to-projects/cloning-a-repository-from-github-to-github-desktop
Download Zip File
- Download this GitHub repository
- Extract the zip archive
- Copy/ move to the desired location
Licence
MIT License (See the LICENSE for more information.)
Screenshots
Desktop
Themes
Light | Dark | Black |
---|---|---|
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.