메뉴 상자에서 프로그램 실행
12895 단어 Tkinter파이썬subprocess
이런 메뉴 상자를 파이썬으로 만들어 보았습니다.
환경
사용한 모듈
TKinter란?
Python의 표준 GUI 도구입니다.
이제 Python 스크립트를 GUI 형식으로 실행할 수 있습니다.
여기에서는 메뉴 상자의 GUI를 제공하는 데 사용했습니다.
subprocess란?
파이썬에서 명령을 실행하는 모듈입니다.
외부 파일의 실행을 파이썬에서 할 수 있습니다.
여기서는 각 프로그램 버튼을 클릭하여 외부 파일을 실행하는 데 사용했습니다.
sys란?
파이썬 인터프리터 및 실행 환경과 관련된 변수와 함수가 결합 된 라이브러리입니다.
여기에서는 메뉴 상자를 종료하는 데 사용했습니다.
코드
menu.pyimport tkinter as tk
import sys
import subprocess
def program_1():
subprocess.Popen(r'C:\python\program_1.exe')
def program_2():
subprocess.Popen(r'C:\python\program_2.exe')
def program_3():
subprocess.Popen(r'C:\python\program_3.exe')
def finish_menu():
sys.exit()
#操作メニューボックス
root = tk.Tk()
root.title(u"操作メニュー")
root.geometry("280x240")
# プログラム1
labeltitle = tk.Label(root, text=u'■■■操作メニュー■■■')
labeltitle.pack()
Label_Blanc = tk.Label(root, text=u'')
Label_Blanc.pack()
program_1_Button = tk.Button(root, text=u'プログラム1', width=30)
program_1_Button["command"] = program_1
program_1_Button.pack()
# プログラム2
Label_Blanc = tk.Label(root, text=u'')
Label_Blanc.pack()
program_2_Button = tk.Button(root, text=u'プログラム2', width=30)
program_2_Button["command"] = program_2
program_2_Button.pack()
# プログラム3
Label_Blanc = tk.Label(root, text=u'')
Label_Blanc.pack()
program_3_Button = tk.Button(root, text=u'プログラム3', width=30)
program_3_Button["command"] = program_3
program_3_Button.pack()
# 終了
Label_Blanc = tk.Label(root, text=u'')
Label_Blanc.pack()
finish_menu_Button = tk.Button(root, text=u'終了')
finish_menu_Button["command"] = finish_menu
finish_menu_Button.pack()
root.mainloop()
설명
subprocess.Popen()
프로그램 버튼을 클릭할 때 동작의 함수를 만듭니다.subprosess.Popen
는 외부 파일을 실행하는 메소드입니다.
실행할 exe 파일을 절대 경로로 설명합니다.
menu.pydef program_1():
subprocess.Popen(r'C:\python\program_1.exe')
sys.exit()
종료 버튼을 클릭했을 때의 동작 함수.sys.exit()
는 프로그램을 종료시키는 메소드입니다.
menu.pydef finish_menu():
sys.exit()
메시지 상자(TKinter)
버튼 클릭시 함수를 작성한 후 TKinter 모듈에서 메시지 상자를 정의합니다.
창 정의
menu.pyroot = tk.Tk()
root.title(u"操作メニュー")
root.geometry("280x240")
메시지 상자 창을 정의합니다.root = tk.Tk()
이 창의 이름(루트).root.title(u"ウィンドウ名")
는 타이틀 바의 표기(조작 메뉴).root.geometry("縦x横")
는 윈도우 크기입니다 (세로 280px ✕ 가로 240px).
상자에 라벨 정의
menu.pylabeltitle = tk.Label(root, text=u'■■■操作メニュー■■■')
labeltitle.pack()
Label_Blanc = tk.Label(root, text=u'')
Label_Blanc.pack()
labeltitle = tk.label(ウィンドウ名,, text=u'テキスト')
에서 창의 레이블 내용을 정의하고,labeltitle.pack()
에서 창에 저장합니다.
Label_Blanc = tk.Label(root, text=u'')
Label_Blanc.pack()
는 1행분 스페이스를 비우기 위해서 넣고 있습니다.
(이것이 올바른 작법인지 확실하지 않습니다)
상자의 버튼 정의
menu.pyprogram_1_Button = tk.Button(root, text=u'プログラム1' width=30)
program_1_Button["command"] = program_1
program_1_Button.pack()
program_1_Button = tk.Button(ウィンドウ名,, text=u'テキスト')
에서 창의 버튼 내용을 정의합니다.
폭을 지정하고 싶은 경우는 width=xx
로 지정.program_1_Button["command"] = 関数名
에서 호출할 함수를 정의합니다.program_1_Button.pack()
에서 창에 저장합니다.
메인 루프
menu.pyroot.mainloop()
윈도우가 마우스 조작 등에 대응할 수 있도록 메인 루프를 실행한다.
Tkinter에서는 이 한 줄이 중요해지므로 쓰는 것을 잊지 않도록 하는 것.
프로그램의 실행 내용의 처리는,root = Tkinter.Tk()
그리고root.mainloop()
사이에 기재한다.
Reference
이 문제에 관하여(메뉴 상자에서 프로그램 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/takanorimutoh/items/3ec2d57c730aed995156
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import tkinter as tk
import sys
import subprocess
def program_1():
subprocess.Popen(r'C:\python\program_1.exe')
def program_2():
subprocess.Popen(r'C:\python\program_2.exe')
def program_3():
subprocess.Popen(r'C:\python\program_3.exe')
def finish_menu():
sys.exit()
#操作メニューボックス
root = tk.Tk()
root.title(u"操作メニュー")
root.geometry("280x240")
# プログラム1
labeltitle = tk.Label(root, text=u'■■■操作メニュー■■■')
labeltitle.pack()
Label_Blanc = tk.Label(root, text=u'')
Label_Blanc.pack()
program_1_Button = tk.Button(root, text=u'プログラム1', width=30)
program_1_Button["command"] = program_1
program_1_Button.pack()
# プログラム2
Label_Blanc = tk.Label(root, text=u'')
Label_Blanc.pack()
program_2_Button = tk.Button(root, text=u'プログラム2', width=30)
program_2_Button["command"] = program_2
program_2_Button.pack()
# プログラム3
Label_Blanc = tk.Label(root, text=u'')
Label_Blanc.pack()
program_3_Button = tk.Button(root, text=u'プログラム3', width=30)
program_3_Button["command"] = program_3
program_3_Button.pack()
# 終了
Label_Blanc = tk.Label(root, text=u'')
Label_Blanc.pack()
finish_menu_Button = tk.Button(root, text=u'終了')
finish_menu_Button["command"] = finish_menu
finish_menu_Button.pack()
root.mainloop()
subprocess.Popen()
프로그램 버튼을 클릭할 때 동작의 함수를 만듭니다.
subprosess.Popen
는 외부 파일을 실행하는 메소드입니다.실행할 exe 파일을 절대 경로로 설명합니다.
menu.py
def program_1():
subprocess.Popen(r'C:\python\program_1.exe')
sys.exit()
종료 버튼을 클릭했을 때의 동작 함수.
sys.exit()
는 프로그램을 종료시키는 메소드입니다.menu.py
def finish_menu():
sys.exit()
메시지 상자(TKinter)
버튼 클릭시 함수를 작성한 후 TKinter 모듈에서 메시지 상자를 정의합니다.
창 정의
menu.py
root = tk.Tk()
root.title(u"操作メニュー")
root.geometry("280x240")
메시지 상자 창을 정의합니다.
root = tk.Tk()
이 창의 이름(루트).root.title(u"ウィンドウ名")
는 타이틀 바의 표기(조작 메뉴).root.geometry("縦x横")
는 윈도우 크기입니다 (세로 280px ✕ 가로 240px).상자에 라벨 정의
menu.py
labeltitle = tk.Label(root, text=u'■■■操作メニュー■■■')
labeltitle.pack()
Label_Blanc = tk.Label(root, text=u'')
Label_Blanc.pack()
labeltitle = tk.label(ウィンドウ名,, text=u'テキスト')
에서 창의 레이블 내용을 정의하고,labeltitle.pack()
에서 창에 저장합니다.Label_Blanc = tk.Label(root, text=u'')
Label_Blanc.pack()
는 1행분 스페이스를 비우기 위해서 넣고 있습니다.(이것이 올바른 작법인지 확실하지 않습니다)
상자의 버튼 정의
menu.py
program_1_Button = tk.Button(root, text=u'プログラム1' width=30)
program_1_Button["command"] = program_1
program_1_Button.pack()
program_1_Button = tk.Button(ウィンドウ名,, text=u'テキスト')
에서 창의 버튼 내용을 정의합니다.폭을 지정하고 싶은 경우는
width=xx
로 지정.program_1_Button["command"] = 関数名
에서 호출할 함수를 정의합니다.program_1_Button.pack()
에서 창에 저장합니다.메인 루프
menu.py
root.mainloop()
윈도우가 마우스 조작 등에 대응할 수 있도록 메인 루프를 실행한다.
Tkinter에서는 이 한 줄이 중요해지므로 쓰는 것을 잊지 않도록 하는 것.
프로그램의 실행 내용의 처리는,
root = Tkinter.Tk()
그리고root.mainloop()
사이에 기재한다.
Reference
이 문제에 관하여(메뉴 상자에서 프로그램 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takanorimutoh/items/3ec2d57c730aed995156텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)