in need of some help...

A

Alex Norton

hi,

i am currently trying to make a rock paper scissors game based on a game.

the code for the game itself works fine, it does what i need it to do

the issue i am having is that i haven't a clue how to combine the game code i have with the QT GUI code i have.
 
C

Chris Angelico

hi,

i am currently trying to make a rock paper scissors game based on a game.

the code for the game itself works fine, it does what i need it to do

the issue i am having is that i haven't a clue how to combine the game code i have with the QT GUI code i have.

Poke around with some QT examples, or play with Tkinter (which comes
with Python). Get a "hello, world" going, then expand on it. If you
get stuck, come back to the list with a bit more information and,
preferably, code; at the moment, your request is so vague that all I
can offer is highly general advice.

ChrisA
 
A

Alex Norton

Poke around with some QT examples, or play with Tkinter (which comes

with Python). Get a "hello, world" going, then expand on it. If you

get stuck, come back to the list with a bit more information and,

preferably, code; at the moment, your request is so vague that all I

can offer is highly general advice.



ChrisA

thanks... i have made the Tkinter hello world before and thats simple

below is the RPS game coding


import pygame, sys

from pygame.locals import *


import random


#############################################################################


#game message
print
print
print
print('Welcome to the Elements game')
print('Water, Earth, Fire, and Air')
print('Type quit to exit the game')
print


#variables for the elements
water = 1

earth = 2

fire = 3

air = 4

#game core mechanic
while 1:

#Z is the computer, the randint is to allow the randomisation of the integers the computer will choose
z = random.randint (1, 4)

#A is the you, this is to allow you to enter an integer yourself and not a randomisation.
a = int (input ('Water, Earth, Fire, Air :----->'))

#the choices you make and the results
if a == z :
print ('Stalemate')

if a == water and z == earth:
print ('Water smashes against Earth and Does nothing, Stalemate')

if a == water and z == fire:
print (' Water hits fire and douses the flames, you win!')

if a == water and z == air:
print (' Water misses the Air, you lose')

if a == earth and z == water:
print (' Earth hits Water and does nothing, Stalemate')

if a == earth and z == fire:
print('Earth is sorched by Fire, you lose')

if a == earth and z == air:
print('Earth snuffs the Air, you win!')

if a == fire and z == water:
print('fire is doused by Water, you lose')

if a == fire and z == earth:
print ('fire sorches Earth, you win!')

if a == fire and z == air:
print('Fire misses Air, Stalemate')

if a == air and z == water:
print('Air removes Water, you win!')

if a == air and z == earth:
print(' Air is dispatched by Earth, you lose')

if a == air and z == fire:
print('Air shakes fire but does nothing, Stalemate')

if a == quit:
break


print('Thank you for playing the Elements game')

oh FYI its for my college course.. i didnt really want to use Visual Basic so the teacher cannot help

below is the QT GUI Code

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'GUI.ui'
#
# Created: Tue Apr 30 22:36:27 2013
# by: PyQt4 UI code generator 4.10.1
#
# WARNING! All changes made in this file will be lost!

from PyQt4 import QtCore, QtGui

try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s

try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)

class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(762, 578)
MainWindow.setMinimumSize(QtCore.QSize(762, 578))
MainWindow.setMaximumSize(QtCore.QSize(762, 578))
MainWindow.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(_fromUtf8("../../../../Users/Alex Norton/Desktop/Avatar-The-Last-Airbender.ico")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
MainWindow.setWindowIcon(icon)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.widget = QtGui.QWidget(self.centralwidget)
self.widget.setGeometry(QtCore.QRect(30, 21, 701, 521))
self.widget.setObjectName(_fromUtf8("widget"))
self.verticalLayout_4 = QtGui.QVBoxLayout(self.widget)
self.verticalLayout_4.setMargin(0)
self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4"))
self.lblTitle = QtGui.QLabel(self.widget)
font = QtGui.QFont()
font.setFamily(_fromUtf8("Viner Hand ITC"))
font.setPointSize(24)
font.setBold(True)
font.setWeight(75)
self.lblTitle.setFont(font)
self.lblTitle.setObjectName(_fromUtf8("lblTitle"))
self.verticalLayout_4.addWidget(self.lblTitle)
self.verticalLayout_3 = QtGui.QVBoxLayout()
self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3"))
self.horizontalLayout_2 = QtGui.QHBoxLayout()
self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
self.verticalLayout = QtGui.QVBoxLayout()
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
self.lblWater = QtGui.QLabel(self.widget)
self.lblWater.setMinimumSize(QtCore.QSize(200, 175))
self.lblWater.setMaximumSize(QtCore.QSize(200, 175))
self.lblWater.setText(_fromUtf8(""))
self.lblWater.setPixmap(QtGui.QPixmap(_fromUtf8(":/imagery/Water.png")))
self.lblWater.setObjectName(_fromUtf8("lblWater"))
self.verticalLayout.addWidget(self.lblWater)
self.lblFire = QtGui.QLabel(self.widget)
self.lblFire.setMinimumSize(QtCore.QSize(200, 175))
self.lblFire.setMaximumSize(QtCore.QSize(200, 175))
self.lblFire.setText(_fromUtf8(""))
self.lblFire.setPixmap(QtGui.QPixmap(_fromUtf8(":/imagery/Fire.png")))
self.lblFire.setObjectName(_fromUtf8("lblFire"))
self.verticalLayout.addWidget(self.lblFire)
self.horizontalLayout_2.addLayout(self.verticalLayout)
self.verticalLayout_2 = QtGui.QVBoxLayout()
self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
self.lblEarth = QtGui.QLabel(self.widget)
self.lblEarth.setMinimumSize(QtCore.QSize(200, 175))
self.lblEarth.setMaximumSize(QtCore.QSize(200, 175))
self.lblEarth.setText(_fromUtf8(""))
self.lblEarth.setPixmap(QtGui.QPixmap(_fromUtf8(":/imagery/Earth.png")))
self.lblEarth.setObjectName(_fromUtf8("lblEarth"))
self.verticalLayout_2.addWidget(self.lblEarth)
self.lblAir = QtGui.QLabel(self.widget)
self.lblAir.setMinimumSize(QtCore.QSize(200, 175))
self.lblAir.setMaximumSize(QtCore.QSize(200, 175))
self.lblAir.setText(_fromUtf8(""))
self.lblAir.setPixmap(QtGui.QPixmap(_fromUtf8(":/imagery/Air.png")))
self.lblAir.setObjectName(_fromUtf8("lblAir"))
self.verticalLayout_2.addWidget(self.lblAir)
self.horizontalLayout_2.addLayout(self.verticalLayout_2)
self.verticalLayout_3.addLayout(self.horizontalLayout_2)
self.horizontalLayout = QtGui.QHBoxLayout()
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
self.lblOutput = QtGui.QLabel(self.widget)
self.lblOutput.setText(_fromUtf8(""))
self.lblOutput.setObjectName(_fromUtf8("lblOutput"))
self.horizontalLayout.addWidget(self.lblOutput)
self.btnFinish = QtGui.QPushButton(self.widget)
font = QtGui.QFont()
font.setFamily(_fromUtf8("Viner Hand ITC"))
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.btnFinish.setFont(font)
self.btnFinish.setObjectName(_fromUtf8("btnFinish"))
self.horizontalLayout.addWidget(self.btnFinish)
self.verticalLayout_3.addLayout(self.horizontalLayout)
self.verticalLayout_4.addLayout(self.verticalLayout_3)
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName(_fromUtf8("statusbar"))
MainWindow.setStatusBar(self.statusbar)

self.retranslateUi(MainWindow)
QtCore.QObject.connect(self.btnFinish, QtCore.SIGNAL(_fromUtf8("pressed()")), MainWindow.close)
QtCore.QMetaObject.connectSlotsByName(MainWindow)

def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "Avatar: The Last Airbender", None))
self.lblTitle.setText(_translate("MainWindow", "Avatar: The Last Airbender Elements Game", None))
self.btnFinish.setText(_translate("MainWindow", "Finish", None))

import elements_rc



basically i want to have it so that the element images in the GUI are linked with their corresponding variable(water with lblWater) and in the background the computer selects their own random integer and the results are displayed in the lblOutput.
 
I

Ian Kelly

oh FYI its for my college course.. i didnt really want to use Visual Basic so the teacher cannot help

If the course is being taught in Visual Basic then that would probably
be the best thing to use. I'm surprised that the teacher is allowing
you to complete the assignment in Python if he/she doesn't know the
language.
basically i want to have it so that the element images in the GUI are linked with their corresponding variable(water with lblWater) and in the background the computer selects their own random integer and the results are displayed in the lblOutput.

I'm not all that familiar with PyQt specifically, but I can tell you
that GUI programs are typically event-based rather than simply
procedural like your RPS game. That means that the "while 1" loop
that you have will be replaced with the Qt event loop. You will also
need to write event handlers for each of the four element labels, so
that when a user clicks on one of them, the game will go through the
logic of receiving the player's choice (based on which one was
clicked), determining the result of the match, and finally updating
the output label accordingly.
 
A

Alex Norton

If the course is being taught in Visual Basic then that would probably

be the best thing to use. I'm surprised that the teacher is allowing

you to complete the assignment in Python if he/she doesn't know the

language.






I'm not all that familiar with PyQt specifically, but I can tell you

that GUI programs are typically event-based rather than simply

procedural like your RPS game. That means that the "while 1" loop

that you have will be replaced with the Qt event loop. You will also

need to write event handlers for each of the four element labels, so

that when a user clicks on one of them, the game will go through the

logic of receiving the player's choice (based on which one was

clicked), determining the result of the match, and finally updating

the output label accordingly.

thanks... ill take a look at the Qt event handling

the teacher actually cant teach anything, he as the knowledge of Vb but his teaching methods are abysmal and severely lacking, but he said we can use any language we feel more comfortable in. some are using VB others PHP and some in C ++.
the reason i chose python was because i could understand it ( simple python) better than any worksheet or notes he made
 
D

Dennis Lee Bieber

the teacher actually cant teach anything, he as the knowledge of Vb but his teaching methods are abysmal and severely lacking, but he said we can use any language we feel more comfortable in. some are using VB others PHP and some in C ++.

Heh... My college instructor at least understood most of the
available languages (the campus mainframe -- 1978 -- supported FORTRAN,
COBOL, Assembly, SNOBOL, BASIC, APL, and one or two others)... He once
gave an assignment with "... any language he knew" as a criteria. So...
He got it in at least three languages! The assignment was a "hashed head
multiple linked list" name/phone directory. I did it in BASIC (which got
fun as the BASIC only allowed 4 open data files at a time).
 
A

Alex Norton

Quit the course and go study someplace else... I wouldn't want to be

in any course where people use VB and PHP to build GUIs!



ChrisA

its a college course (Uk college btw) and its the last unit... im just gonna stick with it

python is quite easy ot understand (reading wise) that the teacher can attempt to read it with my comments
 
J

Jens Thoms Toerring

Alex Norton said:
thanks... ill take a look at the Qt event handling

It's rather simple: instead of the program running through a
sequence of steps, the program normally is basically doing
nothing. It just reacts to events that normally come from
the user, i.e. the user clicks on some icon or widget, or
(s)he enters something via the keyboard. You etermine which
of all the possible events to which widget are relevant to
you, write handler functions for them and tell the widget
to call some function when an event happens. The simplest
case is a button: you want to react to it, so you write a
function for what's to be done when it's clicked on and
then tell Qt to call that function once it gets clicked
(there are different events even for a simple push button,
it can be clicked, just pushed, released etc.). And if you
have set up everything for that you tell Qt to start waiting
for events.

So the steps are:

1. Tell Qt that this is a program using it

app = QtGui.QApplication( sys.argv )

2. Create your graphical interface (what you seem to
have done more or less)

3. Connect desired events (what's called "signals" in
Qt lingo) for a certain widget to the function to be
called with something like

your_widget.clicked.connect( your_function )

(replace 'clicked' with e.g. 'pushed' or 'released'
when interested in a push or release signal instead)

4. Start the event loop (i.e. have Qt wait for the user
to do something and call one of your functions if the
user did something you're interested in) with

app.exec_( )

When this returns the game is over.

So you don't wait for keyboard input with input() like in
your original program but instead tell Qt to do the waiting
for you and call the appropriate function you defined when
something interesting happens.

What you probably will have to change about the graphical
interface is that instead of using QLabel widgets for 'Air',
'Earth', 'Fire', 'Water' to use e.g. QPushButtons since
QLabels are rather static objects - they don't receive any
"click" events and it's rather likely some kind of event
like this is what you're going to want to react to. And for
that QPushButtons seem to be the simplest choice to start
with.

So have an 'Air' button (let's call it 'bAir' and then do

bAir.clicked.connect( air_clicked )

after defining a function air_clicked() in which you deal
with that case. that might be as simple as

def air_clicked( ) :
# Randomly pick one of 'air', 'fire', 'water' or 'earth'

z = [ 'air', 'fire', 'water', earth' ][ random.randrange( 4 ) ]

if z == 'air' :
print( 'Stalemate' )
elif z == 'water' :
print( 'Air removes Water, you win!' )
...

Now, when during the game the 'Air' button is clicked this
function will get called.

Of course, it might be nicer to have a "result" label some-
where in the graphical interface which you set to the text
instead of printing it out to the console. And you also will
probably add some "Quit" button to end the game.

Regards, Jens
 
A

Alex Norton

Thank you very much for the specific detail. I have already done the signal for the finish button so that the app closes when clicked
 
A

Alex Norton

Alex Norton said:
thanks... ill take a look at the Qt event handling



It's rather simple: instead of the program running through a

sequence of steps, the program normally is basically doing

nothing. It just reacts to events that normally come from

the user, i.e. the user clicks on some icon or widget, or

(s)he enters something via the keyboard. You etermine which

of all the possible events to which widget are relevant to

you, write handler functions for them and tell the widget

to call some function when an event happens. The simplest

case is a button: you want to react to it, so you write a

function for what's to be done when it's clicked on and

then tell Qt to call that function once it gets clicked

(there are different events even for a simple push button,

it can be clicked, just pushed, released etc.). And if you

have set up everything for that you tell Qt to start waiting

for events.



So the steps are:



1. Tell Qt that this is a program using it



app = QtGui.QApplication( sys.argv )



2. Create your graphical interface (what you seem to

have done more or less)



3. Connect desired events (what's called "signals" in

Qt lingo) for a certain widget to the function to be

called with something like



your_widget.clicked.connect( your_function )



(replace 'clicked' with e.g. 'pushed' or 'released'

when interested in a push or release signal instead)



4. Start the event loop (i.e. have Qt wait for the user

to do something and call one of your functions if the

user did something you're interested in) with



app.exec_( )



When this returns the game is over.



So you don't wait for keyboard input with input() like in

your original program but instead tell Qt to do the waiting

for you and call the appropriate function you defined when

something interesting happens.



What you probably will have to change about the graphical

interface is that instead of using QLabel widgets for 'Air',

'Earth', 'Fire', 'Water' to use e.g. QPushButtons since

QLabels are rather static objects - they don't receive any

"click" events and it's rather likely some kind of event

like this is what you're going to want to react to. And for

that QPushButtons seem to be the simplest choice to start

with.



So have an 'Air' button (let's call it 'bAir' and then do



bAir.clicked.connect( air_clicked )



after defining a function air_clicked() in which you deal

with that case. that might be as simple as



def air_clicked( ) :

# Randomly pick one of 'air', 'fire', 'water' or 'earth'



z = [ 'air', 'fire', 'water', earth' ][ random.randrange( 4 ) ]



if z == 'air' :

print( 'Stalemate' )

elif z == 'water' :

print( 'Air removes Water, you win!' )

...



Now, when during the game the 'Air' button is clicked this

function will get called.



Of course, it might be nicer to have a "result" label some-

where in the graphical interface which you set to the text

instead of printing it out to the console. And you also will

probably add some "Quit" button to end the game.



Regards, Jens

--

\ Jens Thoms Toerring ___ (e-mail address removed)

\__________________________ http://toerring.de

how would i go about adding print outcomes of all options to a label ?
 
J

Jens Thoms Toerring

Alex Norton said:
how would i go about adding print outcomes of all options to a label ?

If you have a QLabel you can set its text to anything you want
using its setText() method.
Regaeds, Jens

PS: If I may ask you a favor: consider refraining from using Google's
completely broken interface to newsgroups - your post consists
of nearly 200 lines of text containing all I wrote, with an empty
line inserted between each of them, and a single line of text
you wrote. It's rather annoying to have to sieve through that
much of unrelated stuff just to find thar one line that's re-
levant. And this Google groups crap seems to make it nearly
impossible to do it any other way. If you don't believe me see
e.g.

http://wiki.python.org/moin/GoogleGroupsPython

There are much better alternatives to "Google groups",
using a real usenet news server and a program that does
not mess up content of news group postings. They've been
developed with 30 years of experience with newsgroups.

If I'd be conspiracy theorist I would conclude that Google
is up to something bad in trying to make using newsgroups
nearly impossible by their badly broken stuff (and, to add
credibility to such a claim, their complete disregard for
all the criticism they got over the years, actually making
each version of Google groups even worse), but it's rather
likely just another case of pure incompetence (or a "why
should we care" attitude:-(
 
C

Chris “Kwpolska†Warrick

(slightly offtopic, sorry.)

PS: If I may ask you a favor: consider refraining from using Google's
completely broken interface to newsgroups - your post consists
of nearly 200 lines of text containing all I wrote, with an empty
line inserted between each of them, and a single line of text
you wrote. It's rather annoying to have to sieve through that
much of unrelated stuff just to find thar one line that's re-
levant.

Gmail automatically hides long quotes. This is helpful in situations
like this one. More mail software should implement that
functionality. Seriously: once you go Gmail, you never go back.
And this Google groups crap seems to make it nearly
impossible to do it any other way. If you don't believe me see
e.g.

http://wiki.python.org/moin/GoogleGroupsPython

There are much better alternatives to "Google groups",
using a real usenet news server and a program that does
not mess up content of news group postings. They've been
developed with 30 years of experience with newsgroups.

Or something even better: a mailing list.
http://mail.python.org/mailman/listinfo/python-list is where you can
find it. Much friendlier than Usenet, and the software itself is
developed by the FLUFL.
If I'd be conspiracy theorist I would conclude that Google
is up to something bad in trying to make using newsgroups
nearly impossible by their badly broken stuff (and, to add
credibility to such a claim, their complete disregard for
all the criticism they got over the years, actually making
each version of Google groups even worse), but it's rather
likely just another case of pure incompetence (or a "why
should we care" attitude:-(

They shouldn’t care because Usenet users often yell “Get off my
lawn!â€. Young people don’t use newsgroups. They don’t even know what
Usenet is.
 
C

Chris Angelico

Gmail automatically hides long quotes. This is helpful in situations
like this one. More mail software should implement that
functionality. Seriously: once you go Gmail, you never go back.

I use Gmail, but the automated hiding of long quotes is *disrupted* by
the double-spacing. So it's no less important to avoid breaking
protocol.

ChrisA
 
A

Alex Norton

If you have a QLabel you can set its text to anything you want

using its setText() method.

Regaeds, Jens



PS: If I may ask you a favor: consider refraining from using Google's

completely broken interface to newsgroups - your post consists

of nearly 200 lines of text containing all I wrote, with an empty

line inserted between each of them, and a single line of text

you wrote. It's rather annoying to have to sieve through that

much of unrelated stuff just to find thar one line that's re-

levant. And this Google groups crap seems to make it nearly

impossible to do it any other way. If you don't believe me see

e.g.



http://wiki.python.org/moin/GoogleGroupsPython



There are much better alternatives to "Google groups",

using a real usenet news server and a program that does

not mess up content of news group postings. They've been

developed with 30 years of experience with newsgroups.



If I'd be conspiracy theorist I would conclude that Google

is up to something bad in trying to make using newsgroups

nearly impossible by their badly broken stuff (and, to add

credibility to such a claim, their complete disregard for

all the criticism they got over the years, actually making

each version of Google groups even worse), but it's rather

likely just another case of pure incompetence (or a "why

should we care" attitude:-(

--

\ Jens Thoms Toerring ___ (e-mail address removed)

\__________________________ http://toerring.de

i have taken your advice and have messaged the mailing group about the issues i have
 
J

Jens Thoms Toerring

Chris “Kwpolska†Warrick said:
(slightly offtopic, sorry.)
Gmail automatically hides long quotes. This is helpful in situations
like this one. More mail software should implement that
functionality. Seriously: once you go Gmail, you never go back.

i giess you mean Gougle groups and not Gmail, which I can't comment
on since I don't use it.

You still have to "un-hide" the message when you want to under-
stand what the other person is respoding to. And then you're back
to square one (and the double-spacing issue seems to remain). That
is why it has been a good tradition to remove everything when
you reply that isn't relevant to what you're replying to. Of
course, with the sorry excuse for an editor you habe in a web
based form that's more difficult to do than with a real editor.
That's one of the reasons I would advice to use a specialized
program that can be made to use the editor of your choice.

Another extremly annoying thing when reading via Google groups is
that there's no reasonable threading, i.e. it's not immediately
obvious what is meant as a reply to a specific post. That makes
Google groups basically useless for longer discussions.

And then Google groups overflow with spam messages that any
self-respecting news server would discard, so you never get
to see them.
Or something even better: a mailing list.
http://mail.python.org/mailman/listinfo/python-list is where you can
find it. Much friendlier than Usenet, and the software itself is
developed by the FLUFL.

Mailing lists are quite fine and I'm on quite a number of them.
But I don't want many more to further fill up my inbox. And there
you again have the problem that there's no reasonable threading
of messages when these messages arrive in your mail folder.
They shouldn’t care because Usenet users often yell “Get off my
lawn!â€. Young people don’t use newsgroups. They don’t even know what
Usenet is.

Well, it's a pity when younger people don't use newsgroups (no
idea if this is true, though) since they can be extremely useful
for all kinds of purposes - I e.g. learned a huge amount from
just lurking. And while some groups may be nicer than others,
that's no excuse for Google at all to actively trying to destroy
them. I'd rather prefer Google to simply get rid of Google groups
and put the long time archives they obtained from DajaNews into
better hands that do care.
Regards, Jens
 
C

Chris Angelico

i giess you mean Gougle groups and not Gmail, which I can't comment
on since I don't use it.

No, Chris (not me, the other Chris... *an*other Chris.... okay, one of
the chorus of Chrises of this list!) did mean Gmail, the Google
webmail client. It does threading (and does it better than
SquirrelMail does), and it does the hiding of long quotes, long
signatures, etc.

ChrisA
 
J

Jens Thoms Toerring

No, Chris (not me, the other Chris... *an*other Chris.... okay, one of
the chorus of Chrises of this list!) did mean Gmail, the Google
webmail client. It does threading (and does it better than
SquirrelMail does), and it does the hiding of long quotes, long
signatures, etc.

Ok, sorry then about that - as I said I never have used Gmail
(and don't plan using it for other reasons than usability - and
then I would hardly consider anything with a web interface for a
text medium to be very usable;-). But, as far as I understand,
Gmail is about email, so I'm a bit at a loss to understand what
got this to do with news groups and Google groups (were the post
I originally was responing to according to the header seemed to
be coming from) that I intended this to be about?

Best regards, Jens
 
C

Chris Angelico

Ok, sorry then about that - as I said I never have used Gmail
(and don't plan using it for other reasons than usability - and
then I would hardly consider anything with a web interface for a
text medium to be very usable;-). But, as far as I understand,
Gmail is about email, so I'm a bit at a loss to understand what
got this to do with news groups and Google groups (were the post
I originally was responing to according to the header seemed to
be coming from) that I intended this to be about?

Since you can subscribe to the mailing list (e-mail address removed) and
get all of comp.lang.python (sans a pile of spam), you can read it as
a threaded mailing list instead of a newsgroup. It comes to pretty
much the same thing, so effectively you get your choice of technology.

ChrisA
 
D

Dennis Lee Bieber

No, Chris (not me, the other Chris... *an*other Chris.... okay, one of
the chorus of Chrises of this list!) did mean Gmail, the Google

Is that the accepted group noun? I'd think a "crisis of Chrises" is
more alliterative...
 
C

Chris Angelico

Is that the accepted group noun? I'd think a "crisis of Chrises" is
more alliterative...

That works too! I automatically went for "chorus" since I work in
theatre, but I like your version. What do the other Chrises think?

ChrisA
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,774
Messages
2,569,596
Members
45,140
Latest member
SweetcalmCBDreview
Top