Python으로 GUI (그래픽 사용자 인터페이스) 애플리케이션을 만들 때는 선택으로 인해 정말로 손상되었습니다. 우리는 Tnikter, Pygame, Guizero 및 개인적으로 좋아하는 것이 있습니다. Easygui.
EasyGui는 오래되었습니다. 나는 그것을 2015 년에 Python을 가르치는 데 사용했습니다! 그러나 이름에서 알 수 있듯이 사용하기 쉽기 때문에 10 년이 지난 후에도 여전히 사용하는 이유입니다. 그것은 단순히 여러 운영 체제에서 기능하며 대화 상자 프레임의 크기와 위치에 대한 세부 사항에서 대담 할 필요가 없습니다. EasyGui는 특정 유형의 대화 상자 프레임을 원한다고 말하며 제목, 메시지 및 인터페이스를 사용하여 작성합니다. Pygame, Guizero 또는 다른 GUI 도구가 더 좋습니다. 그렇다면 지식을 공유하십시오. 우리는 공유하여 배우고 나는 당신의 선호도를 듣고 싶습니다.
설명하기 위해 몇 가지 스크린 샷을 찍었습니다.
모든 가능성을 보려면 먼저 EasyGui를 설치해야합니다. 컴퓨터에 Python을 설치해야합니다. 우리는 있습니다 Windows Machinery Guide그러나 Linux 사용자는 이미 설치해야합니다.
1. 명령 줄 / 터미널 열기. Windows 사용자는 시작 메뉴를 통해이를 찾을 수 있습니다.
2. PIP를 사용하여 EasyGui를 설치하십시오. PIP는 Python의 제작 된 패키지 관리자입니다.
pip.exe install easygui
3. Python 통역사를 시작하십시오.
python -i
4. EasyGui 모듈의 가져 오기. 모듈을 가져올 때 Easy -A를 예를 들어 EG로 단축했습니다. 이것은 사용을 용이하게합니다.
import easygui as eg
5. 모든 대화 옵션을 보려면 데모 기능을 호출하십시오. 대화 창을 닫아 데모를 완료하십시오.
eg.egdemo()
대화 상자를 만들려면 먼저 대화 상자 유형을 결정한 다음 매개 변수를 전달하십시오. 제목, MSG 및 선택이있는이 간단한 버튼을 예로 들어 보겠습니다. 제목은 대화 프레임의 제목을 말하고 MSG는 사용자에게 메시지이며 선거는 파이썬 옵션 목록이며 버튼이됩니다. 선택을 클릭하면 Python Shell에서 선택을 인쇄하거나 나중에 사용하기 위해 변수로 저장할 수 있습니다.
프로젝트 : 파이썬의 의무 목록
우리의 목표는 간단합니다. 우리를 따를 의무를 만들기 위해 앱을 만듭니다. 응용 프로그램은 Python으로 작성되며 최종 사용자가 GUI를 도와줍니다. 의무 목록은 JSON을 사용하여 외부 파일로 준비됩니다. JSON 모듈 덕분에 Python은 JSO와 쉽게 협업 할 수 있습니다.
그래서 우리는 무엇을합니까?
- EasyGui Python 모듈을 다운로드하여 설치하십시오.
- 텍스트 편집기에 Python 코드를 작성하십시오.
- JSON 형식을 사용하여 파일의 타입 원형 모듈과 함께 EasyGui Python 모듈을 가져옵니다.
- 작업을 처리, 작성 및 삭제하기위한 기능을 만듭니다.
- 작동하도록 앱을 테스트하십시오.
Python과 EasyGui 모듈이 설치되어 있다고 가정하므로 텍스트 편집기를 열고 코드 작성을 시작하겠습니다. 내 Windows 10 컴퓨터에서는 Notada ++를 사용합니다.
1. 텍스트 편집기를 열고 새 빈 파일을 만듭니다. 파일을 통역사 그리고 자주 저장하는 것을 잊지 마십시오. 나는 notada ++를 사용하지만 모든 텍스트 편집기가 작업을 수행합니다.
2. Valu A a Module EasyGui 및 기본 OS와 함께 작업하는 JSON -AI를 사용하는 모듈. 더 쉬운 모듈을 호출 할 수 있도록 EasyGui를 가져 오기 때문에 EasyGui 이름을 바꾸는 것을 잊지 마십시오.
import easygui as eg
import json
import os
3. 의무 목록이 포함 된 JSON 파일이라는 이름을 저장하려면 “파일 이름”이라는 변수를 만드십시오. 이것은 시스템의 어느 곳에서나 파일 일 수 있지만이 경우 같은 디렉토리의 파일입니다. 통역사 파일
filename = "todo_list.json"
4. JSON 파일에 저장된 의무 작업을로드하는 기능을 작성하십시오. 파일이 존재하면 (os.path.exists) 함수는 내용을 복원합니다. 파일이 없으면 빈 목록을 반환합니다 ( [ ] ).
def load_tasks():
if os.path.exists(filename):
with open(filename, "r") as f:
return json.load(f)
else:
return []
5. JSON 파일에 부채 작업을 저장하는 기능을 수행하십시오. 파일을 열고 JSON 구조로 형성된 새 목록으로 기존 컨텐츠를 전사합니다.
def save_tasks(tasks):
with open(filename, "w") as f:
json.dump(tasks, f)
6. 로드 _tasks 기능을 호출하고 출력 (파이썬 기능 리턴)을 작업이라는 변수에 저장하십시오. load_tasks는 JSON 파일에 저장된 기존 주택을 복원하거나 빈 파이썬 목록을 생성합니다.
tasks = load_tasks()
7. 사용자가 나올 때까지 코드를 시작하기 위해 잠시 동안 진정한 루프를 만드십시오.
while True:
8. EasyGui를 사용하여 “선택”이라는 변수를 만들고 버튼 상자에 사용자의 응답을 저장하십시오. 첫 번째 줄은 사용자에게 표시되는 텍스트입니다. 새로운 라인의 파이썬 인 명심하십시오. 두 번째 줄은 대화 프레임의 제목입니다. 사진은 선택한 GIF 이미지 일 수 있습니다. 마지막으로, 선거는 Python 목록에 저장되어 “선택”변수에 저장된 선택한 값을 복원 할 수있는 키가됩니다.
choice = eg.buttonbox(
msg="What would you like to do?\nSelect an option below",
title="To-Do List",
image="clipboard.gif",
choices=["View Tasks", "Add Task", "Remove Task", "Exit"]
)
9. 버튼 박스에 대한 사용자의 응답에 따라 조건부 테스트를 수행하십시오. 그들의 선택이 현재 작업을 검토하고 JSON 파일에 작업이 있다면 EasyGui TextBox를 사용하여 표시하십시오. 그렇지 않으면 텍스트 상자를 사용하여 다시 표시 할 작업이 없음을 사용자에게 알리십시오.
if choice == "View Tasks":
if tasks:
eg.textbox("Your Tasks:", "To-Do List", "\n".join(tasks))
else:
eg.msgbox("No tasks yet!", "To-Do List")
10. 사용자가 버튼에서 “작업 추가”를 선택하면 활성화되는 조건부 테스트에서 두 번째 선택을 만듭니다. 이렇게하면 EasyGui Enter를 통해 사용자 항목을 저장하는 변수 인 작업이 생성됩니다. 그런 다음 작업 (목록)의 객체를 추가하고 Save_Tasks 기능을 요청하여 목록을 JSON 파일에 씁니다. 마지막으로 메시지 상자는 작업이 추가되었는지 확인합니다.
elif choice == "Add Task":
task = eg.enterbox("Enter a new task:", "Add Task")
if task:
tasks.append(task)
save_tasks(tasks)
eg.msgbox("Task added!", "To-Do List")
11. 사용자가 “작업 제거”를 선택할 때 활성화 된 다음 선택을 만듭니다. 제거 작업이 있으면 EasyGui ChoiceBox는 사용자에게 제거 작업을 선택하도록 권장합니다. 그런 다음 조건이 작업 목록 (Python Task List)에서 작업을 제거한 다음 작업이 제거되었음을 사용자에게 알리면 중첩됩니다. 제거 작업이없는 경우 EasyGui 사용자 상자에 사용자에게 알려줍니다.
elif choice == "Add Task":
task = eg.enterbox("Enter a new task:", "Add Task")
if task:
tasks.append(task)
save_tasks(tasks)
eg.msgbox("Task added!", "To-Do List")
12. 두 번째 조건으로 응용 프로그램에서 응용 프로그램에서 휴식을 취하십시오. 이것은 효과적인 거리 / 출구 버튼입니다.
else:
break
13. 코드를 저장하십시오.
14. 명령 줄 창을 열고 응용 프로그램의 위치로 이동하여 작업을 수행하십시오.
15. Python을 사용하여 작업 응용 프로그램을 시작하고 응용 프로그램 기능을 테스트하십시오. EasyGui 및 Python을 사용하여 그래픽 앱을 구축했습니다.
python to-do.py
진정한 GUI 앱을 만들려면 자체 아이콘이 있고 시작하기 위해 명령 줄이 필요하지 않은 앱을 만들고 싶다면 이 안내서를 따르십시오 그리고 직접 사용하십시오 통역사 코드의 예제 대신 파일.
완전한 코드 목록
import easygui as eg
import json
import os
filename = "todo_list.json"
def load_tasks():
if os.path.exists(filename):
with open(filename, "r") as f:
return json.load(f)
else:
return []
def save_tasks(tasks):
with open(filename, "w") as f:
json.dump(tasks, f)
tasks = load_tasks()
while True:
choice = eg.buttonbox(
msg="What would you like to do?\nSelect an option below",
title="To-Do List",
image="clipboard.gif",
choices=["View Tasks", "Add Task", "Remove Task", "Exit"]
)
if choice == "View Tasks":
if tasks:
print(tasks)
eg.textbox("Your Tasks:", "To-Do List", "\n".join(tasks))
else:
eg.msgbox("No tasks yet!", "To-Do List")
elif choice == "Add Task":
task = eg.enterbox("Enter a new task:", "Add Task")
if task:
tasks.append(task)
save_tasks(tasks)
eg.msgbox("Task added!", "To-Do List")
elif choice == "Remove Task":
if tasks:
task_to_remove = eg.choicebox(
"Select a task to remove:",
"Remove Task",
tasks
)
if task_to_remove:
tasks.remove(task_to_remove)
save_tasks(tasks)
eg.msgbox("Task removed!", "To-Do List")
else:
eg.msgbox("No tasks to remove!", "To-Do List")
else:
break