On 10/6/07, <b class="gmail_sendername">Phil Thompson</b> <<a href="mailto:phil@riverbankcomputing.co.uk">phil@riverbankcomputing.co.uk</a>> wrote:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On Friday 05 October 2007, Arve Knudsen wrote:<br>> Hi<br>> I've just written a Designer plugin in Python, which I have to say is very<br>> nice. However I discovered some surprising behaviour in pyuic. My widget
<br>> contains Qt properties (defined using pyqtProperty), but the generated code<br>> don't use the properties, instead it tries to use the underlying methods!?<br>> I discovered this for the reason that I use a different naming convention
<br>> than pyuic apparently expected. For instance, I had a property "value", for<br>> which pyuic expected there to be a setter method "setValue". I hope it<br>> isn't on purpose that pyuic tries to use underlying methods instead of the
<br>> properties themselves?<br>><br>> I'm using PyQt 4.3 commercial edition.<br>><br>> Thanks,<br>> Arve<br><br>If everything is working as it should then it depends on what you have called<br>the setter. If it begins with "set" then pyuic (and uic) should use it
<br>directly and not use setProperty(). However this has probably not had a lot<br>of testing.<br><br>What have you called your setter?</blockquote><div><br>Let's say the property is called "value". I called my setter _set_value, pyuic inferred the setter's name to be setValue.
<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Does uic behave differently to pyuic?</blockquote><div><br>I haven't used uic for some time, but this point is kind of moot since C++ doesn't have properties while Python does :) The point is that I can't see that there is any reason for pyuic to try and use the setter method, when it can simply use the property (
i.e., obj.value = something).<br><br></div></div><br>Arve