vendredi 20 mai 2011

pong debut

import sys, pygame
pygame.init()

size = width, height = 320, 240
speed = [2, 2]
black = 0, 0, 0
white = 255,255,255
green = 0,255,0
screen = pygame.display.set_mode(size)

x=10
deplacementX=1
while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT: sys.exit()

screen.fill(white)
x=x+deplacementX
pygame.draw.rect(screen,green,[x,50,50,50])
if (x<0): deplacementX +=1
if (x>320): deplacementX -=1
pygame.display.flip()

import sys, pygame
pygame.init()

size = width, height = 320, 240
speed = [2, 2]
black = 0, 0, 0
white = 255,255,255
green = 0,255,0
screen = pygame.display.set_mode(size)





while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT: sys.exit()

screen.fill(white)
pygame.draw.line(screen,green,[0,0],[100,100],5)
y=0
while y < 100:
pygame.draw.line(screen,green,[0,10+y],[100,110+y],5)
y=y+10
pygame.display.flip()

fenêtre bis

import sys, pygame
pygame.init()

size = width, height = 320, 240
speed = [2, 2]
black = 0, 0, 0
white = 255,255,255
screen = pygame.display.set_mode(size)


while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT: sys.exit()

screen.fill(white)
pygame.display.flip()

Une de mes erreurs consistait à oublier le pygame.display.flip() à la fin du fichier.

jeudi 19 mai 2011

Creation d'un fenêtre sous python

import pygame
pygame.init()
size=[400,400]
screen=pygame.display.set_mode(size)
pygame.display.set_caption("cooooool")

done=False
clock = pygame.time.Clock()

while done==False:
clock.tick(10)
for event in pygame.event.get():
if event.type ==pygame.QUIT:
done=True

mardi 17 mai 2011

fortuneteller python

#!/usr/bin/env python

"""PyQt4 port of the network/fortuneserver example from Qt v4.x"""

import random

from PyQt4 import QtCore, QtGui, QtNetwork


class Server(QtGui.QDialog):
def __init__(self, parent=None):
super(Server, self).__init__(parent)

statusLabel = QtGui.QLabel()
quitButton = QtGui.QPushButton("Quit")
quitButton.setAutoDefault(False)

self.tcpServer = QtNetwork.QTcpServer(self)
if not self.tcpServer.listen():
QtGui.QMessageBox.critical(self, "Fortune Server",
"Unable to start the server: %s." % self.tcpServer.errorString())
self.close()
return

statusLabel.setText("The server is running on port %d.\nRun the "
"Fortune Client example now." % self.tcpServer.serverPort())

self.fortunes = (
"You've been leading a dog's life. Stay off the furniture.",
"You've got to think about tomorrow.",
"You will be surprised by a loud noise.",
"You will feel hungry again in another hour.",
"You might have mail.",
"You cannot kill time without injuring eternity.",
"Computers are not intelligent. They only think they are.")

quitButton.clicked.connect(self.close)
self.tcpServer.newConnection.connect(self.sendFortune)

buttonLayout = QtGui.QHBoxLayout()
buttonLayout.addStretch(1)
buttonLayout.addWidget(quitButton)
buttonLayout.addStretch(1)

mainLayout = QtGui.QVBoxLayout()
mainLayout.addWidget(statusLabel)
mainLayout.addLayout(buttonLayout)
self.setLayout(mainLayout)

self.setWindowTitle("Fortune Server")

def sendFortune(self):
block = QtCore.QByteArray()
out = QtCore.QDataStream(block, QtCore.QIODevice.WriteOnly)
out.setVersion(QtCore.QDataStream.Qt_4_0)
out.writeUInt16(0)
fortune = self.fortunes[random.randint(0, len(self.fortunes) - 1)]

try:
# Python v3.
fortune = bytes(fortune, encoding='ascii')
except:
# Python v2.
pass

out.writeString(fortune)
out.device().seek(0)
out.writeUInt16(block.size() - 2)

clientConnection = self.tcpServer.nextPendingConnection()
clientConnection.disconnected.connect(clientConnection.deleteLater)

clientConnection.write(block)
clientConnection.disconnectFromHost()


if __name__ == '__main__':

import sys

app = QtGui.QApplication(sys.argv)
server = Server()
random.seed(None)
sys.exit(server.exec_())



#!/usr/bin/env python

"""PyQt4 port of the network/fortuneclient example from Qt v4.x"""

from PyQt4 import QtCore, QtGui, QtNetwork


class Client(QtGui.QDialog):
def __init__(self, parent=None):
super(Client, self).__init__(parent)

self.blockSize = 0
self.currentFortune = ''

hostLabel = QtGui.QLabel("&Server name:")
portLabel = QtGui.QLabel("S&erver port:")

self.hostLineEdit = QtGui.QLineEdit('Localhost')
self.portLineEdit = QtGui.QLineEdit()
self.portLineEdit.setValidator(QtGui.QIntValidator(1, 65535, self))

hostLabel.setBuddy(self.hostLineEdit)
portLabel.setBuddy(self.portLineEdit)

self.statusLabel = QtGui.QLabel("This examples requires that you run "
"the Fortune Server example as well.")

self.getFortuneButton = QtGui.QPushButton("Get Fortune")
self.getFortuneButton.setDefault(True)
self.getFortuneButton.setEnabled(False)

quitButton = QtGui.QPushButton("Quit")

buttonBox = QtGui.QDialogButtonBox()
buttonBox.addButton(self.getFortuneButton,
QtGui.QDialogButtonBox.ActionRole)
buttonBox.addButton(quitButton, QtGui.QDialogButtonBox.RejectRole)

self.tcpSocket = QtNetwork.QTcpSocket(self)

self.hostLineEdit.textChanged.connect(self.enableGetFortuneButton)
self.portLineEdit.textChanged.connect(self.enableGetFortuneButton)
self.getFortuneButton.clicked.connect(self.requestNewFortune)
quitButton.clicked.connect(self.close)
self.tcpSocket.readyRead.connect(self.readFortune)
self.tcpSocket.error.connect(self.displayError)

mainLayout = QtGui.QGridLayout()
mainLayout.addWidget(hostLabel, 0, 0)
mainLayout.addWidget(self.hostLineEdit, 0, 1)
mainLayout.addWidget(portLabel, 1, 0)
mainLayout.addWidget(self.portLineEdit, 1, 1)
mainLayout.addWidget(self.statusLabel, 2, 0, 1, 2)
mainLayout.addWidget(buttonBox, 3, 0, 1, 2)
self.setLayout(mainLayout)

self.setWindowTitle("Fortune Client")
self.portLineEdit.setFocus()

def requestNewFortune(self):
self.getFortuneButton.setEnabled(False)
self.blockSize = 0
self.tcpSocket.abort()
self.tcpSocket.connectToHost(self.hostLineEdit.text(),
int(self.portLineEdit.text()))

def readFortune(self):
instr = QtCore.QDataStream(self.tcpSocket)
instr.setVersion(QtCore.QDataStream.Qt_4_0)

if self.blockSize == 0:
if self.tcpSocket.bytesAvailable() < 2:
return

self.blockSize = instr.readUInt16()

if self.tcpSocket.bytesAvailable() < self.blockSize:
return

nextFortune = instr.readString()

try:
# Python v3.
nextFortune = str(nextFortune, encoding='ascii')
except TypeError:
# Python v2.
pass

if nextFortune == self.currentFortune:
QtCore.QTimer.singleShot(0, self.requestNewFortune)
return

self.currentFortune = nextFortune
self.statusLabel.setText(self.currentFortune)
self.getFortuneButton.setEnabled(True)

def displayError(self, socketError):
if socketError == QtNetwork.QAbstractSocket.RemoteHostClosedError:
pass
elif socketError == QtNetwork.QAbstractSocket.HostNotFoundError:
QtGui.QMessageBox.information(self, "Fortune Client",
"The host was not found. Please check the host name and "
"port settings.")
elif socketError == QtNetwork.QAbstractSocket.ConnectionRefusedError:
QtGui.QMessageBox.information(self, "Fortune Client",
"The connection was refused by the peer. Make sure the "
"fortune server is running, and check that the host name "
"and port settings are correct.")
else:
QtGui.QMessageBox.information(self, "Fortune Client",
"The following error occurred: %s." % self.tcpSocket.errorString())

self.getFortuneButton.setEnabled(True)

def enableGetFortuneButton(self):
self.getFortuneButton.setEnabled(bool(self.hostLineEdit.text() and
self.portLineEdit.text()))


if __name__ == '__main__':

import sys

app = QtGui.QApplication(sys.argv)
client = Client()
client.show()
sys.exit(client.exec_())

python regexp.py

#!/usr/bin/env python

"""PyQt4 port of the tools/regexp example from Qt v4.x"""

# This is only needed for Python v2 but is harmless for Python v3.
import sip
sip.setapi('QVariant', 2)

from PyQt4 import QtCore, QtGui


class RegExpDialog(QtGui.QDialog):
MaxCaptures = 6

def __init__(self, parent=None):
super(RegExpDialog, self).__init__(parent)

self.patternComboBox = QtGui.QComboBox()
self.patternComboBox.setEditable(True)
self.patternComboBox.setSizePolicy(QtGui.QSizePolicy.Expanding,
QtGui.QSizePolicy.Preferred)

patternLabel = QtGui.QLabel("&Pattern:")
patternLabel.setBuddy(self.patternComboBox)

self.escapedPatternLineEdit = QtGui.QLineEdit()
self.escapedPatternLineEdit.setReadOnly(True)
palette = self.escapedPatternLineEdit.palette()
palette.setBrush(QtGui.QPalette.Base,
palette.brush(QtGui.QPalette.Disabled, QtGui.QPalette.Base))
self.escapedPatternLineEdit.setPalette(palette)

escapedPatternLabel = QtGui.QLabel("&Escaped Pattern:")
escapedPatternLabel.setBuddy(self.escapedPatternLineEdit)

self.syntaxComboBox = QtGui.QComboBox()
self.syntaxComboBox.addItem("Regular expression v1",
QtCore.QRegExp.RegExp)
self.syntaxComboBox.addItem("Regular expression v2",
QtCore.QRegExp.RegExp2)
self.syntaxComboBox.addItem("Wildcard", QtCore.QRegExp.Wildcard)
self.syntaxComboBox.addItem("Fixed string",
QtCore.QRegExp.FixedString)

syntaxLabel = QtGui.QLabel("&Pattern Syntax:")
syntaxLabel.setBuddy(self.syntaxComboBox)

self.textComboBox = QtGui.QComboBox()
self.textComboBox.setEditable(True)
self.textComboBox.setSizePolicy(QtGui.QSizePolicy.Expanding,
QtGui.QSizePolicy.Preferred)

textLabel = QtGui.QLabel("&Text:")
textLabel.setBuddy(self.textComboBox)

self.caseSensitiveCheckBox = QtGui.QCheckBox("Case &Sensitive")
self.caseSensitiveCheckBox.setChecked(True)
self.minimalCheckBox = QtGui.QCheckBox("&Minimal")

indexLabel = QtGui.QLabel("Index of Match:")
self.indexEdit = QtGui.QLineEdit()
self.indexEdit.setReadOnly(True)

matchedLengthLabel = QtGui.QLabel("Matched Length:")
self.matchedLengthEdit = QtGui.QLineEdit()
self.matchedLengthEdit.setReadOnly(True)

self.captureLabels = []
self.captureEdits = []
for i in range(self.MaxCaptures):
self.captureLabels.append(QtGui.QLabel("Capture %d:" % i))
self.captureEdits.append(QtGui.QLineEdit())
self.captureEdits[i].setReadOnly(True)
self.captureLabels[0].setText("Match:")

checkBoxLayout = QtGui.QHBoxLayout()
checkBoxLayout.addWidget(self.caseSensitiveCheckBox)
checkBoxLayout.addWidget(self.minimalCheckBox)
checkBoxLayout.addStretch(1)

mainLayout = QtGui.QGridLayout()
mainLayout.addWidget(patternLabel, 0, 0)
mainLayout.addWidget(self.patternComboBox, 0, 1)
mainLayout.addWidget(escapedPatternLabel, 1, 0)
mainLayout.addWidget(self.escapedPatternLineEdit, 1, 1)
mainLayout.addWidget(syntaxLabel, 2, 0)
mainLayout.addWidget(self.syntaxComboBox, 2, 1)
mainLayout.addLayout(checkBoxLayout, 3, 0, 1, 2)
mainLayout.addWidget(textLabel, 4, 0)
mainLayout.addWidget(self.textComboBox, 4, 1)
mainLayout.addWidget(indexLabel, 5, 0)
mainLayout.addWidget(self.indexEdit, 5, 1)
mainLayout.addWidget(matchedLengthLabel, 6, 0)
mainLayout.addWidget(self.matchedLengthEdit, 6, 1)

for i in range(self.MaxCaptures):
mainLayout.addWidget(self.captureLabels[i], 7 + i, 0)
mainLayout.addWidget(self.captureEdits[i], 7 + i, 1)
self.setLayout(mainLayout)

self.patternComboBox.editTextChanged.connect(self.refresh)
self.textComboBox.editTextChanged.connect(self.refresh)
self.caseSensitiveCheckBox.toggled.connect(self.refresh)
self.minimalCheckBox.toggled.connect(self.refresh)
self.syntaxComboBox.currentIndexChanged.connect(self.refresh)

self.patternComboBox.addItem("[A-Za-z_]+([A-Za-z_0-9]*)")
self.textComboBox.addItem("(10 + delta4)* 32")

self.setWindowTitle("RegExp")
self.setFixedHeight(self.sizeHint().height())
self.refresh()

def refresh(self):
self.setUpdatesEnabled(False)

pattern = self.patternComboBox.currentText()
text = self.textComboBox.currentText()

escaped = str(pattern)
escaped.replace('\\', '\\\\')
escaped.replace('"', '\\"')
self.escapedPatternLineEdit.setText('"' + escaped + '"')

rx = QtCore.QRegExp(pattern)
cs = QtCore.Qt.CaseInsensitive
if self.caseSensitiveCheckBox.isChecked():
cs = QtCore.Qt.CaseSensitive
rx.setCaseSensitivity(cs)
rx.setMinimal(self.minimalCheckBox.isChecked())
syntax = self.syntaxComboBox.itemData(self.syntaxComboBox.currentIndex())
rx.setPatternSyntax(syntax)

palette = self.patternComboBox.palette()
if rx.isValid():
palette.setColor(QtGui.QPalette.Text,
self.textComboBox.palette().color(QtGui.QPalette.Text))
else:
palette.setColor(QtGui.QPalette.Text, QtCore.Qt.red)
self.patternComboBox.setPalette(palette)

self.indexEdit.setText(str(rx.indexIn(text)))
self.matchedLengthEdit.setText(str(rx.matchedLength()))

for i in range(self.MaxCaptures):
self.captureLabels[i].setEnabled(i <= rx.numCaptures())
self.captureEdits[i].setEnabled(i <= rx.numCaptures())
self.captureEdits[i].setText(rx.cap(i))

self.setUpdatesEnabled(True)

if __name__ == '__main__':

import sys

app = QtGui.QApplication(sys.argv)
dialog = RegExpDialog()
sys.exit(dialog.exec_())

PYQT

Install and run "hello world" example
  • apt-cache search pyqt
  • sudo apt-get install python-qt4
  • Create a file ~/tmp/helloworld.py
    import sys
    from PyQt4.QtGui import *
    app = QApplication(sys.argv)
    button = QPushButton("Hello World", None)
    button.show()
    app.exec_()
  • Run it:
    python ~/tmp/helloworld.py
    You should see a window with a single button pop up.

Install additional examples
  • For more examples, install the python-qt4-doc package:
    sudo apt-get install python-qt4-doc
  • After installation, the examples are located at:
    /usr/share/doc/python-qt4-doc/examples

BLog Open



















A word to try a new blg thing. Will see what is goind to be inside. I'am not decided yet.