2016-05-28 1 views
0

Я хотел бы отобразить таблицу из 6 кнопок (отменить, удалить, сохранить, закрыть, остановить, новый), с 3 строками и 2 колонами. Я попытался запустить эту программу ниже, но это не сработало.TypeError: GridSizer(): аргументы не соответствуют перегруженному вызову

import wx 

class Identifiers(wx.Frame): 
    def __init__(self, parent, id, title): 
     wx.Frame.__init__(self, parent, id, title, size=(200, 150)) 

     panel = wx.Panel(self, -1) 
     grid = wx.GridSizer(3, 2) 

     grid.AddMany([(wx.Button(panel, wx.ID_CANCEL), 0, wx.TOP | wx.LEFT, 9), 
     (wx.Button(panel, wx.ID_DELETE), 0, wx.TOP, 9), 
     (wx.Button(panel, wx.ID_SAVE), 0, wx.LEFT, 9), 
     (wx.Button(panel, wx.ID_EXIT)), 
     (wx.Button(panel, wx.ID_STOP), 0, wx.LEFT, 9), 
     (wx.Button(panel, wx.ID_NEW))]) 

     self.Bind(wx.EVT_BUTTON, self.OnQuit, id=wx.ID_EXIT) 

     panel.SetSizer(grid) 
     self.Centre() 
     self.Show(True) 

    def OnQuit(self, event): 
     self.Close() 

app = wx.App() 
Identifiers(None, -1, '') 
app.MainLoop() 

Это ошибка в сообщении.

File "C:/Python34/Test_wxPython/Events/Identifiers.py", line 12, in __init__ 
    grid = wx.GridSizer(3, 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 

Существует проблема с этой линией grid = wx.GridSizer(3, 2), но мне не удается выяснить проблему.

+0

Какая у вас версия wxpython ?, В 3.0.2 работает нормально! –

ответ

0

Как вы используете Python 3.4 Я полагаю, вы используете wxPython Phoenix. Согласно документации of wx.GridSizer два int не соответствуют ни одной из разрешенных подписей. Использовать, например. вместо трех целых чисел.

 Смежные вопросы

  • Нет связанных вопросов^_^