wxpython 中弹出瞬态 window 的 pos 参数
pos argument for popup transient window in wxpython
我正在尝试制作自定义弹出窗口 window 并做了以下操作。
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)
谁能帮我解决这个问题。
提前致谢。
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
由于PopupTransientWindow()
最多接受2个参数,我建议您将其更改为:
super(MyDialog, self).__init__(parent, style=wx.CLIP_CHILDREN | wx.FRAME_NO_TASKBAR |wx.FRAME_SHAPED) #, **kwargs)
要设置瞬态 window 的位置,您可以使用 Position
:
def Position(*args, **kwargs):
"""Position(self, Point ptOrigin, Size size)"""
return _windows_.PopupWindow_Position(*args, **kwargs)
我正在尝试制作自定义弹出窗口 window 并做了以下操作。
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)
谁能帮我解决这个问题。 提前致谢。
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
由于PopupTransientWindow()
最多接受2个参数,我建议您将其更改为:
super(MyDialog, self).__init__(parent, style=wx.CLIP_CHILDREN | wx.FRAME_NO_TASKBAR |wx.FRAME_SHAPED) #, **kwargs)
要设置瞬态 window 的位置,您可以使用 Position
:
def Position(*args, **kwargs):
"""Position(self, Point ptOrigin, Size size)"""
return _windows_.PopupWindow_Position(*args, **kwargs)