Hi,
I am having trouble properly sizing parentless modal dialogs.
The class used can be seen in the attached file generated
with wxGlade.
Despite my setting an initial size, and despite my Python
code seeing that size (via .GetSize()) right before the
ShowModal() call the dialog will eventually be displayed
maximized.
This is on Debian/wxp4/py3.
# parent is None
dlg = cGenericListSelectorDlg(parent, -1, title = caption, msg = msg)
... a bunch of setup not size-related ...
print('before showing dlg', dlg.GetSize(), 'parent:', parent)
btn_pressed = dlg.ShowModal()
print('after showing dlg', dlg.GetSize())
Output:
before showing dlg (640, 500) parent: None
after showing dlg (1374, 772)
The cGenericListSelectorDlg wrapping wxgGenericListSelectorDlg does this:
from Gnumed.wxGladeWidgets import wxgGenericListSelectorDlg
class cGenericListSelectorDlg(wxgGenericListSelectorDlg.wxgGenericListSelectorDlg):
"""A dialog holding a list and a few buttons to act on the items."""
def __init__(self, *args, **kwargs):
try:
msg = kwargs['msg']
del kwargs['msg']
except KeyError:
msg = None
try:
title = kwargs['title']
if not title.startswith('GMd: '):
kwargs['title'] = 'GMd: %s' % title
except KeyError:
kwargs['title'] = 'GMd: %s' % self.__class__.__name__
wxgGenericListSelectorDlg.wxgGenericListSelectorDlg.__init__(self, *args, **kwargs)
self.message = msg
self.left_extra_button = None
self.middle_extra_button = None
self.right_extra_button = None
self.refresh_callback = None # called when new/edit/delete callbacks return True (IOW were not cancelled)
self.new_callback = None # called when NEW button pressed, no argument passed in
self.edit_callback = None # called when EDIT button pressed, data of topmost selected item passed in
self.delete_callback = None # called when DELETE button pressed, data of topmost selected item passed in
self.can_return_empty = False
self.ignore_OK_button = False # by default do show/use the OK button
self.select_callback = None # called when an item is selected, data of topmost selected item passed in
self._LCTRL_items.select_callback = self._on_list_item_selected_in_listctrl
Does anyone have an idea which direction I should look ?
Karsten
wxgGenericListSelectorDlg.py (5.58 KB)
···
--
GPG 40BE 5B0E C98E 1713 AFA6 5BC0 3BEA AC80 7D4F C89B