wxpython에서 GUI를 통해 입력한 값 가져오기
python은 다양한 GUI 선택이 있지만 psychopy를 입력할 때 wxpython은 기본적으로 설치해야 하기 때문에 사용합니다.
판면 디자인에 관해서는 처음에는 이해할 수 없고 고통스러웠지만 wwx.GridSizer를 사용할 때 Psychopy를 사용하는 사람은 MATLAB/matplotlib의subplot와 같은 느낌을 사용할 수 있다.
각 GUI를 목록에 넣으면 나중에 더 쉽게 매개 변수를 추가할 수 있습니다.
import wx
class GUIinput:
def __init__(self):
self.frame = wx.Frame(None, -1, "textbox")
self.frame.SetTitle('Exp. Params.')
panel_ui = wx.Panel(self.frame, wx.ID_ANY, size=(400, 100))
layout = wx.GridSizer(rows=6, cols=2, gap=(5, 5))
labels = ['NI-dev ID', 'Durations[s]', 'ISI [s]', 'Init Wait [s]', 'RGB Channels']
defaults = ['Dev2', '5,5,5,5', '0', '5', '0,0,1']
self.frame.labels = []
self.frame.tboxes = []
for k, i in enumerate(labels):
self.frame.labels.append(wx.StaticText(panel_ui, wx.ID_ANY, labels[k]))
self.frame.tboxes.append(wx.TextCtrl(panel_ui, wx.ID_ANY, defaults[k]))
# button
self.frame.btn = wx.Button(panel_ui, -1, 'Submit')
self.frame.btn.Bind(wx.EVT_BUTTON, self.Clicked)
# layout
for k, i in enumerate(self.frame.labels):
layout.Add(i)
layout.Add(self.frame.tboxes[k])
layout.Add(self.frame.btn, flag=wx.SHAPED)
panel_ui.SetSizer(layout)
self.frame.Show(True)
self.frame.datas = []
def Clicked(self,event):
for i in self.frame.tboxes:
self.frame.datas.append(i.GetValue())
self.frame.Close(True)
app = wx.App()
guiobj = GUIinput()
app.SetTopWindow(guiobj.frame)
app.MainLoop()
print(guiobj.frame.datas)
Reference
이 문제에 관하여(wxpython에서 GUI를 통해 입력한 값 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rysk-t/items/904702b06b84fad6632d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)