[PyQt] Re: connection between 2 widget

Massimo Di Stefano massimodisasha at yahoo.it
Wed Jun 24 10:45:48 BST 2009


Hi David,

Thanks!!!


thanks for point me on how to solve my problem :-)
i know it is not only a pyqt ... biut more related to programming,
i'm a poor self teached student thanks for your example i'm now able  
to go ahead
with my code!


now i'm coonecting :


doublespinbox  using :

         self.connect(self.DoubleSpinBox,  
SIGNAL("valueChanged(double)"), self. external_class.setSpinBoxValue)


linEdit using :

         self.connect(self.lineEdit, SIGNAL("textChanged(QString)"),  
self.external_class.setLineEditValue)


now looking for combo-box widget too.


thanks again!!!


regards,

Massimo

Il giorno 22/giu/09, alle ore 20:01, David Boddie ha scritto:

> On Sun Jun 21 17:37:54 BST 2009, Massimo Di Stefano wrote:
>
>> I'm tring to get a solution,
>> i searced for similar code in the pyqt examples source code
>> but i can't find nothig similar.
>>
>> is the question i proposed comprensible?
>
> It's a little difficult for me to understand, but I'll try and work  
> through
> it step by step:
>
>> i can reproduce my problem with an example :
>>
>> W-1 (spinbox + button)   [ it is a main app, and has in the menu bar
>> an action to open W-2]
>
> OK, I see this in your example.
>
>> W-2 (line edit + button)
>
> Right. I see this when I select the process->run menu item.
>
>> i run W-1, pressing its button it increase the spinbox value,
>> then pressing the action from the menu -> open W-2
>
> Yes, these work as expected. A question: what happens if the user  
> changes
> the value in the spin box directly?
>
>> W-2 , at its start, read value from W-1 -- pressing the W-2 button
>> process W-1 value and print it .
>
> When I click the button, I see the value from the spin box in the line
> edit.
>
>> my problem :
>>
>> i need that everitime i change the W-1  value ...
>> ... when i press button in W-2  it will process the W-1(changed  
>> value)
>
> OK, so instead of passing a value when you create W-2, you want the  
> value
> to be taken from the spin box in W-1 and written to the line edit?
>
> Here are some changes I made to your code to do what I think you want.
>
> Firstly, I create the Elab widget in the init() method of your  
> application
> class instead of creating it later in the elaborazione() method.  
> This makes
> it possible for me to connect a signal from the ZoomSpinBox to a  
> slot in
> the widget.
>
> [app.py]
> [...]
>    def init(self):
>        self.w = GuiWidget()
>        self.Value = 0
>        self.query = Elab()
>        self.connect(self.w.p1, SIGNAL("clicked()"), self.inc)
>        self.connect(self.w.actionRun, SIGNAL("triggered()"),
>                     self.elaborazione)
>        self.connect(self.w.ZoomSpinBox,  
> SIGNAL("valueChanged(double)"),
>                     self.query.setValue)
>        self.w.show()
> [...]
>    def elaborazione(self):
>        self.query.show()
>
>
> I just show the Elab widget when the elaborazione() method is called.
>
> In the Elab class, we no longer need to pass an initial value, but  
> you could
> make the class take a value to begin with if you want. We don't want  
> to show
> the widget immediately, so I removed a call to its show() method.
>
> [elab.py]
>
> class Elab(QWidget, Ui_Form):
>    def __init__(self):
>         QWidget.__init__(self)
>         self.setupUi(self)
>         self.value = 0
>         self.connect(self.p2, SIGNAL("clicked()"),self.elabora)
>
>     def elabora(self):
>         newvalue = str(self.value)+str('-----')
>         self.lineEdit.setText(newvalue)
>         print newvalue
>
>     def setValue(self, value):
>         self.value = value
>
> I added the setValue() slot that we used in the app.py file. This  
> updates the
> value held by this widget so that clicking the button causes an up- 
> to-date
> value to be used.
>
> Is this what you had in mind?
>
> David
> _______________________________________________
> PyQt mailing list    PyQt at riverbankcomputing.com
> http://www.riverbankcomputing.com/mailman/listinfo/pyqt



More information about the PyQt mailing list