wxPython 사용(6)
대상과 동작 환경 등 최초에 필요한 정보는 wxPython 사용(1)와 같다.
그리고 이번 내용은 5회 전의 계속이니 꼭 보세요.
특징.
BoxSizer는 이전까지 설명되어 있습니다.
이번부터 GridSizer를 배워봅시다.
GridSizer는 컨테이너 영역을 지정된 행 수, 열 수로 나누어 부품의 메쉬 레이아웃을 순서대로 구성합니다.
구조기 함수에 행과 열을 건네주고 첫 줄부터 프로젝트를 설정하고 첫 줄이 끝난 후에 두 번째 줄로 이동합니다.
window_display12.py는 위의 그림의 프로그램입니다.
window_display12.py
import wx
class CustomFrame(wx.Frame):
def __init__(self,title):
wx.Frame.__init__(self,None,-1,title,size=(400,400))
panel = wx.Panel(self)
layout = wx.GridSizer(2,2,0,0)
layout.Add(wx.Button(panel,wx.ID_ANY,'B01'))
layout.Add(wx.Button(panel,wx.ID_ANY,'B02'))
layout.Add(wx.Button(panel,wx.ID_ANY,'B03'))
layout.Add(wx.Button(panel,wx.ID_ANY,'B04'))
panel.SetSizer(layout)
self.Show()
app = wx.App(False)
CustomFrame('GridSizer')
app.MainLoop()
여기서 주의해야 할 것은 layout = wx.GridSizer(2,2,0,0)
구조기 함수의 매개 변수는 4개가 필요하다는 것이다.wx.GridSizer
이 프로그램을 쓸 때 wx.GridSizer(行数を指定,列数を指定,縦の余白を指定,横の余白を指定)
처럼 줄과 열만 지정했지만 다음과 같은 오류가 발생했습니다.layout = wx.GridSizer(2,2)
TypeError: GridSizer(): arguments did not match any overloaded call:
overload 1: not enough arguments
overload 2: argument 2 has unexpected type 'int'
overload 3: not enough arguments
overload 4: not enough arguments
이 오류 검색https://stackoverflow.com/questions/37502112/typeerror-gridsizer-arguments-did-not-match-any-overloaded-call
라는 사이트의 답변은 다음과 같다.
As you are running Python 3.4 I presume you are using wxPython Phoenix. According to the documentation of wx.GridSizer two int do not match any of the allowed signatures. Use e.g. three integers instead.
이것을 보고 매개 변수를 세 개로 바꾸면 틀리면 된다.
또한
wx.GridSizer(2,2)
의 세로 간격을 지정하지 않으려면 wx.GridSizer(行数を指定,列数を指定,縦の余白を指定,横の余白を指定)
로 쓰면 행렬 수와 가로 간격을 지정할 수 있다.이번 wxPythhon을 사용하면 이것으로 끝냅니다.
읽어주셔서 감사합니다.
wxptyhon 디렉토리 사용
Reference
이 문제에 관하여(wxPython 사용(6)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Kenta-Han/items/7704a7f39bee882bfd29텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)