in need of some help regarding my rock paper scissors game

Dave Angel davea at davea.name
Sun May 12 19:04:48 EDT 2013


On 05/12/2013 03:33 PM, Alex Norton wrote:
> im new to python and im in the middle of making a RPS game for a college
> unit.
>
> i have used PyQt to create the GUI and i have received help regarding
> adding the code to the buttons.

I'm not at all familiar with PyQT, but I have used other GUIs, and I'm 
quite familiar with Python itself.

>
> but its missing something as the error
>
> 'Traceback (most recent call last): File "C:\Users\Me\Desktop\testy.py",
> line 174, in bWater.clicked.connect( water_clicked ) AttributeError: 'int'
> object has no attribute 'clicked'' appears when i run the module.

You've defined two very different bWater objects.  One is an instance 
attribute of the class Ui_MainWindow, while the other is an int at 
global scope.  The latter is never usefully referenced, but it's there 
to cause a confusing error message.  Those three calls through the 
clicked attrbute are evidently intended for the button object, which is 
inside the class instance.  My guess is that those three lines should be 
inside the setupUI method, and should have self. prefix on each.

Next problem is that there's a comment at the beginning:

# Form implementation generated from reading ui file 'mygui.ui'
#
# Created: Fri May 10 20:27:13 2013
#      by: PyQt4 UI code generator 4.10.1
#
# WARNING! All changes made in this file will be lost!

which implies this file is a generated one.  If you ever rerun that UI 
generator, you'll wipe out any changes you've made.  Again, I'm not 
familiar with PyQT, so I don't know how likely that is.

Next problem is that you have no top-level code that calls main(), which 
is evidently the code that gets things moving.  Generally, you want to 
put all the top-level code inside main(), in which case the call to 
main() would be the only top-level code left.  But there are exceptions. 
  imports should nearly always go to the top, at top level.  And you 
conditional functions need to stay at top-level just as you have them 
(the two clauses with try/cath in them).

Final problem that I can spot is that if you DO need to reference those 
four functions from mainline code, you'll have to move them earlier in 
the file.  But if you agreed with my earlier suggestion to move the 
three lines inside that method, then this wouldn't be a problem any more.

>
> i was wondering if somebody could walk me through making the game complete
> and to add the results of the game (win/lose/stalemate) to the loutcome
> label
>

Once you get to the innards of PyQT, I'll be no help at all.  But I hope 
I've given you a little push in the right direction.


-- 
DaveA



More information about the Python-list mailing list