wxPython 사용(6)

6885 단어 Python3wxpythonPython
안녕하세요. 지금부터 wxPython을 사용하고 싶습니다.
대상과 동작 환경 등 최초에 필요한 정보는 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 디렉토리 사용

  • wxPython 사용(1)
  • wxPythhon 사용(2)
  • wxPython 사용(3)
  • wxPython 사용(4)
  • wxPython 사용(5)
  • 좋은 웹페이지 즐겨찾기