You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Operating system: Mac OS Sonoma 14.6 (23G80) (Apple M1 hardware) wxPython version & source: wxPython==4.2.1 (pypi) Python version & source: Python 3.11.9 (main, Apr 3 2024, 23:19:16) [Clang 15.0.0 (clang-1500.1.0.2.5)]
(Mac ports)
Description of the problem:
There are several problems with the masked NumCtrl, which make it unusuable. I have described three below. I have also seen some other errors, but the causes (the sequence of inputs and edits) are not so easy to reproduce.
1. Unable to type if initial digits deleted
If I delete the initial value in the control, I can't type anything. Attempting to type digits results in the following error:
Traceback (most recent call last):
File "/Users/jamie/Library/Python/3.11/lib/python/site-packages/wx/lib/masked/maskededit.py", line 3088, in _OnChar
if keep_processing and self._isCharAllowed( char, pos, checkRegex = True ):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jamie/Library/Python/3.11/lib/python/site-packages/wx/lib/masked/maskededit.py", line 4712, in _isCharAllowed
and (sel_to == end or (sel_to < self._masklength and value[sel_start] != field._fillChar))
~~~~~^^^^^^^^^^^
IndexError: string index out of range
The displayed number is
2. Deleting the decimal point
If I delete the decimal point and then attempt to type "." I get the following error message:
Traceback (most recent call last):
File "/Users/jamie/Library/Python/3.11/lib/python/site-packages/wx/lib/masked/maskededit.py", line 3049, in _OnChar
keep_processing = self._keyhandlers[key](event)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jamie/Library/Python/3.11/lib/python/site-packages/wx/lib/masked/maskededit.py", line 3992, in _OnDecimalPoint
newstr = self._adjustFloat(value)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jamie/Library/Python/3.11/lib/python/site-packages/wx/lib/masked/maskededit.py", line 4439, in _adjustFloat
intStr, fracStr = value.split(self._decimalChar)
^^^^^^^^^^^^^^^
ValueError: not enough values to unpack (expected 2, got 1)
If I move the cursor and then type a decimal point then the program crashes with:
Python[44871:4565493] *** Assertion failure in -[NSTextRange initWithLocation:endLocation:], NSTextRange.m:32
Fatal Python error: PyGILState_Release: thread state 0x1036eb260 must be current when releasing
Python runtime state: initialized
Current thread 0x00000001f7804f40 (most recent call first):
File "/Users/jamie/Library/Python/3.11/lib/python/site-packages/wx/lib/masked/textctrl.py", line 140 in _SetSelection
File "/Users/jamie/Library/Python/3.11/lib/python/site-packages/wx/core.py", line 3427 in <lambda>
File "/Users/jamie/Library/Python/3.11/lib/python/site-packages/wx/core.py", line 2262 in MainLoop
File "/Users/jamie/Documents/Projects/python/timer/src/test.py", line 37 in main
File "/Users/jamie/Documents/Projects/python/timer/src/test.py", line 41 in <module>
Extension modules: wx._core (total: 1)
Abort trap: 6
3. Errors after deleting leading spaces
The initial value in the control is preceded by several (10) spaces. Deleting more than 4 of these results in the following error:
Traceback (most recent call last):
File "/Users/jamie/Library/Python/3.11/lib/python/site-packages/wx/lib/masked/numctrl.py", line 1258, in OnTextChange
if not BaseMaskedTextCtrl._OnTextChange(self, event):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jamie/Library/Python/3.11/lib/python/site-packages/wx/lib/masked/maskededit.py", line 2965, in _OnTextChange
self._CheckValid() # Recolor control as appropriate
^^^^^^^^^^^^^^^^^^
File "/Users/jamie/Library/Python/3.11/lib/python/site-packages/wx/lib/masked/maskededit.py", line 5377, in _CheckValid
self._applyFormatting()
File "/Users/jamie/Library/Python/3.11/lib/python/site-packages/wx/lib/masked/maskededit.py", line 4784, in _applyFormatting
text, signpos, right_signpos = self._getSignedValue()
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jamie/Library/Python/3.11/lib/python/site-packages/wx/lib/masked/maskededit.py", line 4955, in _getSignedValue
abstext, signpos, right_signpos = self._getAbsValue(text)
^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jamie/Library/Python/3.11/lib/python/site-packages/wx/lib/masked/maskededit.py", line 4919, in _getAbsValue
if len(text) >= signpos+1 and text[signpos+1] in ('-','('):
~~~~^^^^^^^^^^^
IndexError: string index out of range
Traceback (most recent call last):
File "/Users/jamie/Library/Python/3.11/lib/python/site-packages/wx/lib/masked/maskededit.py", line 5578, in _OnKillFocus
self._AdjustField(self._GetInsertionPoint())
File "/Users/jamie/Library/Python/3.11/lib/python/site-packages/wx/lib/masked/maskededit.py", line 4304, in _AdjustField
newfield = field._AdjustField(slice)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jamie/Library/Python/3.11/lib/python/site-packages/wx/lib/masked/maskededit.py", line 1653, in _AdjustField
intStr = str(int(intStr))
^^^^^^^^^^^
ValueError: invalid literal for int() with base 10: '0.0'
(That last line is puzzling)
Code Example (click to expand)
#!/usr/bin/env python3importwximportwx.lib.maskedclassMainWindow(wx.Dialog):
"""Subclass of wx.Frame to serve as the main window of the example"""def__init__(self):
"""Create the main window"""super().__init__(None, title="Test")
sizer=wx.BoxSizer(wx.VERTICAL)
control=wx.lib.masked.numctrl.NumCtrl(parent=self)
control.SetFractionWidth(2)
sizer.Add(control, flag=wx.ALIGN_LEFT|wx.EXPAND)
self.SetSizer(sizer)
defmain():
# Create the Wx Appapp=wx.App()
# Create the main window with access to the databaseframe=MainWindow()
app.SetTopWindow(frame)
frame.Show()
app.MainLoop()
if__name__=="__main__":
main()
The text was updated successfully, but these errors were encountered:
Operating system: Mac OS Sonoma 14.6 (23G80) (Apple M1 hardware)
wxPython version & source: wxPython==4.2.1 (pypi)
Python version & source: Python 3.11.9 (main, Apr 3 2024, 23:19:16) [Clang 15.0.0 (clang-1500.1.0.2.5)]
(Mac ports)
Description of the problem:
There are several problems with the masked NumCtrl, which make it unusuable. I have described three below. I have also seen some other errors, but the causes (the sequence of inputs and edits) are not so easy to reproduce.
1. Unable to type if initial digits deleted
If I delete the initial value in the control, I can't type anything. Attempting to type digits results in the following error:
The displayed number is
2. Deleting the decimal point
If I delete the decimal point and then attempt to type "." I get the following error message:
If I move the cursor and then type a decimal point then the program crashes with:
3. Errors after deleting leading spaces
The initial value in the control is preceded by several (10) spaces. Deleting more than 4 of these results in the following error:
(That last line is puzzling)
Code Example (click to expand)
The text was updated successfully, but these errors were encountered: