wxPython : http://www.wxpython.org/
wxPython 은 Python에 기반한 GUI toolkit으로, Python 언어를 이용해서 GUI를 간단하고 빠른 시간에 제작 가능하도록 도와준다. wxPython 은 GUI 라이브러리인 wxWindows를 Python 에서 지원이 가능하도록 c++ 로 제작되었으며, 크로스 플랫폼 툴킷이다.
현재 wxPython은 윈도우와 대부분의 Linux 및 Unix 호환 시스템에서 작동한다.
설치 방법
1. 다운로드를 위한 사이트
http://wxpython.org/Phoenix/snapshot-builds/
2. wxPython_Phoenix-3.0.2.dev77713-cp36-none-win64.whl (python 64bit 버전용-사이트에서 다운받으면 기본)
주의 : python 64bit 로 설치된 경우는 64bit 버전용으로 다운받아 설치해야 한다.
> pip install wxPython_Phoenix-3.0.2.dev77713-cp36-none-win64.whl
설치 다른 방법
아나콘다 프롬프트 >pip install -U wxPython
이클립스를 실행한다.여기까지 설치 끝~~~
확인하기 : test.py 작성 후 실행
import wx
app = wx.App(False)
frame = wx.Frame(None, wx.ID_ANY, "Hello World")
frame.Show(True)
app.MainLoop()
http://wiki.wxpython.org/Getting%20Started
http://zetcode.com/wxpython/
Visual Component Class 목록 보기
http://wxpython.org/Phoenix/docs/html/gallery.html
http://gadgetlip.tistory.com/ Layout 알아보기http://sourceforge.net/projects/wxformbuilder/
---wxformBuilder로 작성 후 호출 하기---
import wxfrom 모듈명 import 클래스명
if __name__ == '__main__':
app = wx.App() 클래스명(None).Show() app.MainLoop()
참고 :
Python을 위한 GUI - Tkinter
Tkinter : https://realpython.com/python-gui-tkinter/
*** 다이얼로그 박스로 자료 입력 하기 ***
import wx
class MyApp(wx.App):
def OnInit(self):
dlg = wx.TextEntryDialog(None,'자료를 입력하시오','입력', '초기값')
ret = dlg.ShowModal()
if ret == wx.ID_OK:
print('You entered: %s\n' % dlg.GetValue())
else:
print('You don\'t know')
dlg.Destroy()
return True
app = MyApp(redirect = 0)
app.MainLoop()
Python을 위한 GUI - PyQt
https://opentutorials.org/module/544
도움말 http://pyqt.sourceforge.net/Docs/PyQt4/
PyQt Class Reference http://pyqt.sourceforge.net/Docs/PyQt4/classes.html
PyQt4 설치
https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyqt4
간단 예)
from PyQt4.QtGui import *
class MyDialog(QDialog):
def __init__(self):
QDialog.__init__(self)
# 레이블,Edit,버튼 컨트롤
lblName = QLabel("이름")
self.editName = QLineEdit()
btnOk = QPushButton("확인")
layout = QVBoxLayout()
layout.addWidget(lblName)
layout.addWidget(self.editName)
layout.addWidget(btnOk)
# 레이아웃 지정
self.setLayout(layout)
btnOk.clicked.connect(self.btnxxxxxxxxxxxxxxxxOnClick)
def btnxxxxxxxxxxxxxxxxOnClick(self):
name = self.editName.text()
QMessageBox.information(self, "메세지창", name)
if __name__=='__main__':
app = QApplication([])
dialog = MyDialog()
dialog.show()
app.exec_()