I thought the problem was practical, not philosophical, but what do I know I'm the one asking for help.
I have radiobuttons arranged in 4 rows of 4 buttons each ( 4 rows and 4 columns ) The user can select no more than 1 choice in any column, but any number in any row. Restated: columns can have 0 or 1 selection rows can have 0,1,2,3, or 4 selections. Columns can be restricted to 0 or 1 selection through the use of an intVar. So we now have 4 intVars (control variables) The app needs to examine the buttons and aggregate the selections for each row, efectively converting columnar information to row information. one solution: Create 4 intVars Column0 = intVar() Column1 = intVar() Column2 = intVar() Column3 = intVar() Assign 0, 1, 2, 3 and 4 to values to correspond to the row number. Row1rb1 = Radiobutton(self, variable = Column0, value = 1) Row1rb2 = Radiobutton(self, variable = Column1, value = 1) Row1rb3 = Radiobutton(self, variable = Column2, value = 1) Row1rb4 = Radiobutton(self, variable = Column3, value = 1) Row2rb1 = Radiobutton(self, variable = Column0, value = 2) Row2rb2 = Radiobutton(self, variable = Column1, value = 2) … … Row4rb4 = Radiobutton(self, variable = Column3, value = 4) to 'read' the user's response: Loop through the 4 intVars 4 times; compare their value to the value for the row being processed; if they are the same bitor a value to a rowVariable i.e. convert the column information (intVar values) to row information. Bill Peter Otten wrote: > William Gill wrote: > > >>The radiobutton widget knows if it is selected or unselected, or it >>wouldn't be able to display correctly, but based on what I'm seeing, >>that information is inaccessable to the app. Instead the app must >>evaluate an associated control variable. That doesn't make sence to me, >>but even trying to look at the code for the radiobutton class didn't help. > > > I guessed you wanted to solve a practical problem, but the thoughts > expressed above suggest, err, philosophical qualms. So, for the sake of the > argument and since we both don't know the implementation details, be it in > C or TCL, let's assume that the individual radiobuttons do *not* /know/ > whether they are selected or not but instead compare their associated > 'variable' with their 'value' every time they are /asked/ to draw > themselves. That would avoid duplicate state and require only log N instead > of N bits. Wouldn't that be an elegant implementation, at least in theory? > > So why bother about the layers below when you have all the information to > write code that works? > > Peter > > -- http://mail.python.org/mailman/listinfo/python-list