[PyQt] Problem with QValidator

Björn Häuser bjoernhaeuser at googlemail.com
Wed Jun 10 23:09:15 BST 2009


Björn Häuser schrieb:
> Phil Thompson schrieb:
>> On Tue, 09 Jun 2009 20:30:27 +0200, "Björn Häuser"
>> <bjoernhaeuser at googlemail.com> wrote:
>>> Phil Thompson schrieb:
>>>> On Sun, 07 Jun 2009 16:23:03 +0200, "Björn Häuser"
>>>> <bjoernhaeuser at googlemail.com> wrote:
>>>>> Hello List!
>>>>>
>>>>> I have a Problem with my own QValidator. Just tried to write one 
>>>>> which checks the length of a input field.
>>>>>
>>>>> Traceback (most recent call last):
>>>>>    File "window.py", line 97, in <module>
>>>>>      window = Window(config)
>>>>>    File "window.py", line 26, in __init__
>>>>>      self.ui.username.setValidator(vsl)
>>>>> RuntimeError: underlying C/C++ object has been deleted
>>>>>
>>>>>
>>>>> This is the error i get when trying to use it.
>>>>>
>>>>>          vsl = validStringLength(2, 8, self)
>>>>>          self.ui.username.setValidator(vsl)
>>>>>
>>>>> This the basic code for using the validator.
>>>>>
>>>>> http://pastie.org/503567 - this is the rest of this file.
>>>>> http://pastie.org/503568 - this is the validator file.
>>>>>
>>>>> Any help appreciated (and any suggestions, especially regarding 
>>>>> code quality).
>>>> I'm guessing that you are not keeping a reference to your validator.
>> I'll
>>>> change things so that a reference is kept automatically.
>>>>
>>>> Phil
>>> Thanks Phil for your answer.
>>>
>>> How do i keep such a reference? I also tried to use self.vsl, but 
>>> getting the same error.
>>
>> self.vsl should be fine. Like I said, I'm only guessing that's the 
>> problem.
>>
>> Phil
> 
> Hello Phil!
> 
> http://pastie.org/507585 - this code gives me the same error.
> 
> Can you give me some working example for using QValidator?
> 
> Thanks in advance,
> Björn
> 

Ok, got it working!

The ctor of the validator needs to do this:
QtGui.QValidator.__init__(self, parent)

I missed the "self".

Thanks for your help.

Björn


More information about the PyQt mailing list