2016-05-02 3 views
1

Я пытаюсь создать собственное всплывающее окно и сделал следующее.pos аргумент для всплывающего окна переходного процесса в wxpython

class MyDialog(wx.PopupTransientWindow): 

    def __init__(self, parent, title, cellnum, cmd, **kwargs): 
     super(MyDialog, self).__init__(parent, style=wx.CLIP_CHILDREN | wx.FRAME_NO_TASKBAR |wx.FRAME_SHAPED, **kwargs) 
     # def __init__(self, parent, style, cellnum, cmd): 
     # super(MyDialog, self).__init__(parent, style=wx.CLIP_CHILDREN | wx.FRAME_NO_TASKBAR | wx.NO_BORDER|wx.FRAME_SHAPED) 

     # self.panel = wx.Panel(self) 
     #size=(255,200)#one kind of size 
     self.panel = Panel1(self) 

Но когда я называю его:

dial = MyDialog(self, "mydialog", wx.id, cmd, pos=ldPos) 

Это показывает следующее сообщение об ошибке:

Traceback (most recent call last): 
    File "D:\X000T9P77\projects\MYTEST\docs\MYTEST_gui_module_src\MYTESTGUI.py", line 1465, in ShowMessage1 
    dial = MyDialog(self, "CELL "+id, id, cmd, pos=ldPos) 
    File "D:\X000T9P77\projects\MYTEST\docs\MYTEST_gui_module_src\MYTESTGUI.py", line 103, in __init__ 
    super(MyDialog, self).__init__(parent, style=wx.CLIP_CHILDREN | wx.FRAME_NO_TASKBAR |wx.FRAME_SHAPED, **kwargs) 
    File "C:\Python27\lib\site-packages\wx-3.0-msw\wx\_windows.py", line 2141, in __init__ 
    _windows_.PopupTransientWindow_swiginit(self,_windows_.new_PopupTransientWindow(*args, **kwargs)) 
TypeError: new_PopupTransientWindow() takes at most 2 arguments (3 given) 

Может кто-нибудь помочь мне в этом. Спасибо много заблаговременно.

ответ

0

Поскольку PopupTransientWindow() занимает не более 2-х аргументов, я предлагаю вам изменить его на:

super(MyDialog, self).__init__(parent, style=wx.CLIP_CHILDREN | wx.FRAME_NO_TASKBAR |wx.FRAME_SHAPED) #, **kwargs) 

Для установите положение временного окна, вы можете использовать Position:

def Position(*args, **kwargs): 

    """Position(self, Point ptOrigin, Size size)""" 
    return _windows_.PopupWindow_Position(*args, **kwargs) 
+0

Спасибо, что это помогло много :) – SB07

0

PopupTransientWindow только принимает 2 аргумента parent и flags, ваш код передает эти 2 плюс, он также пытается передать аргумент pos.

в линии

super(MyDialog, self).__init__(parent, style=wx.CLIP_CHILDREN | wx.FRAME_NO_TASKBAR |wx.FRAME_SHAPED, **kwargs) 

** kwargs проходит его Pos = ldPos

+0

Спасибо за ответ. Есть ли какой-либо метод, который я могу передать положению и установить его для временного окна? – SB07

+0

@ SB07 Попробуйте методы Move (pt, flags) или MoveXY (x, y, flags). – Yoriz

+0

Спасибо Yoriz за классный ответ – SB07