버튼을 누르면 특정 프로그램이 실행되는 Launcher 어플의 Template입니다.
# -*- coding: utf-8 -*- #!/usr/bin/python import wx import subprocess BUTTON_ID_1 = 101 BUTTON_ID_2 = 102 BUTTON_ID_3 = 103 BUTTON_ID_4 = 104 COMMAND_PATH_1 = "" # 첫번째 버튼으로 실행할 실행파일 경로 예) "C:\\Windows\\explorer.exe" COMMAND_PATH_2 = "" # 두번째 버튼으로 실행할 실행파일 경로 COMMAND_PATH_3 = "" # 세번째 버튼으로 실행할 실행파일 경로 COMMAND_PATH_4 = "" # 네번째 버튼으로 실행할 실행파일 경로 COMMAND_PARAM_1 = "" # 첫번째 버튼으로 실행할 실행파일 파라미터 COMMAND_PARAM_2 = "" # 두번째 버튼으로 실행할 실행파일 파라미터 COMMAND_PARAM_3 = "" # 세번째 버튼으로 실행할 실행파일 파라미터 COMMAND_PARAM_4 = "" # 네번째 버튼으로 실행할 실행파일 파라미터 def ShellExecute(path, param="", cwd=None, nonExecutable = False): # path : 실행 파일 경로 # param : 파라미터 # cwd : 현재 디렉토리 # nonExecutable : True일 경우, 실행 파일이 아니어도 연결 프로그램으로 실행 가능 try: if param == "": subprocess.Popen([path], cwd = cwd, shell=nonExecutable) else: subprocess.Popen([path, param], cwd = cwd, shell=nonExecutable) except OSError: wx.MessageBox(u"Launch Failed!", u"Info") class MainWindow(wx.Frame): def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title, size = (320, 240), style = wx.DEFAULT_FRAME_STYLE|wx.NO_FULL_REPAINT_ON_RESIZE) vbox = wx.BoxSizer(wx.VERTICAL) button = wx.Button(self, id = BUTTON_ID_1, label = u"Button 1", size = (-1, 50)) vbox.Add(button, 0, wx.EXPAND | wx.ALL) self.Bind(wx.EVT_BUTTON, self.OnButton, button) button = wx.Button(self, id = BUTTON_ID_2, label = u"Button 2", size = (-1, 50)) vbox.Add(button, 0, wx.EXPAND | wx.ALL) self.Bind(wx.EVT_BUTTON, self.OnButton, button) button = wx.Button(self, id = BUTTON_ID_3, label = u"Button 3", size = (-1, 50)) vbox.Add(button, 0, wx.EXPAND | wx.ALL) self.Bind(wx.EVT_BUTTON, self.OnButton, button) button = wx.Button(self, id = BUTTON_ID_4, label = u"Button 4", size = (-1, 50)) vbox.Add(button, 0, wx.EXPAND | wx.ALL) self.Bind(wx.EVT_BUTTON, self.OnButton, button) self.SetSizer(vbox, True) self.Layout() def OnButton(self, event): buttonId = event.GetId() if buttonId == BUTTON_ID_1: ShellExecute(COMMAND_PATH_1, COMMAND_PARAM_1) if buttonId == BUTTON_ID_2: ShellExecute(COMMAND_PATH_2, COMMAND_PARAM_2) if buttonId == BUTTON_ID_3: ShellExecute(COMMAND_PATH_3, COMMAND_PARAM_3) if buttonId == BUTTON_ID_4: ShellExecute(COMMAND_PATH_4, COMMAND_PARAM_4) app = wx.App(False) frame = MainWindow(None, -1, u"Title") frame.Show(1) app.MainLoop()
<테스트 환경>
OS : Windows 7
Python 버전 : 2.7
wxPython 버전 : 2.8.12.1
'1. 연구 모듈 > Python' 카테고리의 다른 글
[Python] Python에서 패키지 관리 시스템(PIP) 사용하기 (0) | 2016.10.18 |
---|---|
[Python 팁] Python에서 한글 사용 (0) | 2015.09.29 |
Python 게임 관련 라이브러리들 (0) | 2015.08.28 |
pyGame 사용법 요약 - 2. 스프라이트(Sprite)의 사용 (0) | 2015.08.21 |
pyGame 사용법 요약 - 1. 기본 기능 (0) | 2015.08.15 |