Thank you so much for the help. 
Once more question. Again related to the RadioButton. 
Assume we define two RadioButtons as rb1 = QtGui.QRadioButton('MyRadioButton1', 
self) rb2 = QtGui.QRadioButton('MyRadioButton2', self)

If rb1 is checked , one action is performed in some other place.  If rb2 is 
checked, some other action is performed. 
For example, in the following code,  if rb1 is checked, the name should be set 
to 'Alice' if Button 'update' is hit.   if rb2 is checked, then the name should 
be set to 'Tom'. 
How should the code be modified to achieve this goal. 

Many thanks. 


===================================================#!/usr/bin/python#MyUI.py
import sysimport randomfrom PyQt4 import QtCore, QtGui

class MyUI2(QtGui.QWidget):     def __init__(self, parent=None):                
QtGui.QWidget.__init__(self, parent)
                self.setWindowTitle('My UI2')
                self.rb1 = QtGui.QRadioButton('MyButton1', self)                
self.rb2 = QtGui.QRadioButton('MyButton2', self)
                bg = QtGui.QButtonGroup(parent)                 
bg.setExclusive(1)              bg.addButton(self.rb1)          
bg.addButton(self.rb2)        
                hbox = QtGui.QHBoxLayout()              hbox.addStretch(1)      
        hbox.addWidget(self.rb1)                hbox.addWidget(self.rb2)        
        self.setLayout(hbox)            self.resize(900, 600)

                lb1 = QtGui.QLabel('Name')
                self.tf1 = QtGui.QLineEdit()            hbox.addWidget(lb1)     
        hbox.addWidget(self.tf1)
                self.tf1.setText('Jone')                                update 
= QtGui.QPushButton('update')            hbox.addWidget(update)          
self.connect(update, QtCore.SIGNAL('clicked()'),                        
self.update_info )                                      def update_info(self):  
        tx=''           #if self.rb1.checked():         #       
self.tf1.setText('Alice')               #if self.rb2.checked():         #       
self.tf1.setText('Tom')


app = QtGui.QApplication(sys.argv)ui = 
MyUI2()ui.show()sys.exit(app.exec_())===================================================







> From: [email protected]
> To: [email protected]
> Subject: Re: [PyQt] Two questions about PyQt
> Date: Wed, 25 Nov 2009 08:46:58 +0100
> CC: [email protected]
> 
> Le Wednesday 25 November 2009 07:19:48 tiob lew, vous avez écrit :
> > I am a newbie to Python and have two questions using python to design UI
> > based PyQT4.6.
> >
> > The source code is
> > ===========================================
> > #!/usr/bin/python
> > #MyUI.py
> >
> > import sys
> > import random
> > from PyQt4 import QtCore, QtGui
> >
> >
> > class MyUI(QtGui.QWidget):
> >     def __init__(self, parent=None):
> >         QtGui.QWidget.__init__(self, parent)
> >         self.setWindowTitle('My UI')
> >
> >         cb1 = QtGui.QCheckBox('MyCheckBox1', self)
> >         cb2 = QtGui.QCheckBox('MyCheckBox2', self)
> >
> >         bg = QtGui.QButtonGroup(parent)
> >
> >         bg.setExclusive(1)
> >         bg.addButton(cb1)
> >         bg.addButton(cb2)
> >
> >         hbox = QtGui.QHBoxLayout()
> >         hbox.addStretch(1)
> >         hbox.addWidget(cb1)
> >         hbox.addWidget(cb2)
> >         self.setLayout(hbox)
> >         self.resize(900, 600)
> >
> >         lb1 = QtGui.QLabel('Name')
> >         lb2 = QtGui.QLabel('Age')
> >         lb3 = QtGui.QLabel('Address')
> >
> >         tf1 = QtGui.QLineEdit()
> >         tf2 = QtGui.QLineEdit()
> >         tf3 = QtGui.QLineEdit()
> >
> >         hbox.addWidget(lb1)
> >         hbox.addWidget(tf1)
> >         hbox.addWidget(lb2)
> >         hbox.addWidget(tf2)
> >         hbox.addWidget(lb3)
> >         hbox.addWidget(tf3)
> >
> >         tf1.setText('Jone')
> >         tf2.setText('28')
> >         tf3.setText('London')
> >
> >         update = QtGui.QPushButton('update')
> >         hbox.addWidget(update)
> >         self.connect(update, QtCore.SIGNAL('clicked()'),
> >              self, QtCore.SLOT('update_info(self)'))
> >
> >     def update_info(self):
> >         tf1.setText('Alice')
> >         tf2.setText('18')
> >         tf3.setText('New York')
> >
> > app = QtGui.QApplication(sys.argv)
> > ui = MyUI()
> > ui.show()
> > sys.exit(app.exec_())
> >
> >
> > ============================================
> >
> > I want to implement two functions in this piece of code.
> > 1) implement the exclusive checkbox in a group of checkboxes. In another
> > word, only one of CheckBox1 and Checkbox2 could be checked at any time.
> 
> Use QRadioButton widgets for this.
> 
> > 2) After clicking "update" button, the information should be updated as
> > Name ----> Alice
> > Age -----> 18
> > Address---> New York
> 
> Simply keep references to your QLineEdit widgets as attributes of your class, 
> eg. by replacing everywhere "tf1" by "self.tf1" (and so forth).
> And replace 
>          self.connect(update, QtCore.SIGNAL('clicked()'),
>               self, QtCore.SLOT('update_info(self)'))
> 
> by 
>          self.connect(update, QtCore.SIGNAL('clicked()'),
>               self.update_info)
> 
> >
> > How should the code be modified to implement this two functionalities?
> 
> Basically, you really should read a bit of Python, Qt and PyQt documentation 
> or at least follow tutorials.
> 
> > Many thanks.
> >
> > _________________________________________________________________
> > Hotmail: Trusted email with powerful SPAM protection.
> > http://clk.atdmt.com/GBL/go/177141665/direct/01/
> 
> 
> 
> -- 
> David Douard                        LOGILAB, Paris (France), +33 1 45 32 03 12
> Formations Python, Zope, Debian :   http://www.logilab.fr/formations
> Développement logiciel sur mesure : http://www.logilab.fr/services
> Informatique scientifique :         http://www.logilab.fr/science
                                          
_________________________________________________________________
Windows 7: It works the way you want. Learn more.
http://www.microsoft.com/Windows/windows-7/default.aspx?ocid=PID24727::T:WLMTAGL:ON:WL:en-US:WWL_WIN_evergreen:112009v2
_______________________________________________
PyQt mailing list    [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Reply via email to