[prev in list] [next in list] [prev in thread] [next in thread] 

List:       pykde
Subject:    Re: [PyKDE] autoAdding buttons to a grid
From:       John Ridley <ojokimu () yahoo ! co ! uk>
Date:       2005-05-20 22:13:55
Message-ID: 20050520221355.97283.qmail () web26807 ! mail ! ukl ! yahoo ! com
[Download RAW message or body]


--- Richard Smith <smithbone@gmail.com> wrote:
> I must be finally starting to catch on.  I worked out how to make the
> QbuttonGroup operate pretty close to what I want.
> 
> The code I ended up with is below.
> 
> One thing I this still dosen't do is resize all the buttons when the
> number of columns is changed.  I want the button widths to shrink
> with
> repect to how wide I set the
> QButtonGroup to be.
> 
> QGridLayout seems to be what I want to use to do all this for me but
> I
> haven't yet fully grokked how to make that happen.

Is this anything like what you had in mind?

>>> import sys
>>> from qt import *
>>> class Form(QDialog):
...    def __init__(self):
...       QDialog.__init__(self)
...       self.grid = QGridLayout(None,1,1,0,6)
...       p = QSizePolicy.Expanding; p = QSizePolicy(p,p,0,0,1)
...       b = QPushButton('Add Row',self); b.setSizePolicy(p)
...       self.connect(b,SIGNAL('clicked()'),self.addbuttons)
...       self.grid.addWidget(b,0,0)
...       b = QPushButton('Add Col',self); b.setSizePolicy(p)
...       self.connect(b,SIGNAL('clicked()'),self.addcol)
...       self.grid.addWidget(b,1,0)
...       g = QGridLayout(self,1,1,10,6)
...       g.addLayout(self.grid,0,0)
...       self.resize(QSize(300,300))
...    def addbuttons(self, col=0):
...       k = [self.grid.numRows(),self.grid.numCols()]
...       if col: k.reverse()
...       for n in range(k[1]):
...          b = QPushButton('Button', self)
...          b.setSizePolicy(QSizePolicy(
...             QSizePolicy.Expanding,QSizePolicy.Expanding,0,0,1))
...          if col: self.grid.addWidget(b,n,k[0])
...          else: self.grid.addWidget(b,k[0],n)
...          b.show()
...    def addcol(self):
...       self.addbuttons(1)
...
>>> A = QApplication(sys.argv)
>>> F = Form(); A.setMainWidget(F); F.show()
>>> A.exec_loop(); del F,A

HTH

John Ridley


		
___________________________________________________________ 
Does your mail provider give you FREE antivirus protection? 
Get Yahoo! Mail http://uk.mail.yahoo.com

_______________________________________________
PyKDE mailing list    PyKDE@mats.imk.fraunhofer.de
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic