PDA

View Full Version : [Python] PySide- Uso Frame-widget-MainWindow


francolol
07-08-2014, 18:18
Salve ragazzi, dopo una breve vacanza 'forzata' ho ripreso a programmare e mi sono trovato un po incasinato nell'apprendere le librerie PySide.
Il problema è che non so come organizzare le classi suddette dal momento che nel tutorial seguito non venivano spiegate e non ho trovato molto altro materiale.

In sintesi (spero voi possiate correggermi) ogni classe deve(?) essere inizializzata con l'istruzione
super(nomeClasse,self)__init__()
self.initUI #nome della funzione dove inserisco tutti i widget ecc...

Il fatto è che i widget appaiono solo se inizializzo la classe come QtGui.QWidget()
Per favore potete darmi qualche spiegazione o reindirizzarmi a qualche sito? Ho usato il tutorial ZetCode e alcuni documenti sul sito di QT ma non sono molto esaustivi. Grazie a tutti :mc:

pabloski
07-08-2014, 18:47
Ma PySide non è più sviluppato dal 2011. L'attuale binding per QT è PyQT http://www.python.it/wiki/show/qttutorial/

francolol
07-08-2014, 19:46
:eek: ho perso due giorni a seguire e cercare materiale :muro:
vabbe meglio tardi che mai, grazie mille della notiziona, vedo di aggiornarmi anche io.

WarDuck
07-08-2014, 21:28
Ma PySide non è più sviluppato dal 2011. L'attuale binding per QT è PyQT http://www.python.it/wiki/show/qttutorial/

Stando a questo sito non sembrerebbe:

http://qt-project.org/wiki/PySide

Io ho sempre usato PyQt, quindi purtroppo non saprei aiutarti.

francolol
07-08-2014, 21:31
Scusate se vi disturbo, avreste mica guide o manuali di PyQt?

cdimauro
08-08-2014, 07:18
Oltre alla documentazione online non conosco altro.

Comunque PySide è ancora sviluppato.

pabloski
08-08-2014, 09:32
Stando a questo sito non sembrerebbe:

http://qt-project.org/wiki/PySide

Io ho sempre usato PyQt, quindi purtroppo non saprei aiutarti.

Ho guardo e l'ultimo commit è del 2012.

cdimauro
08-08-2014, 18:21
Tuesday July 08 2014 (https://qt.gitorious.org/pyside/pyside/commits/0c64d1b2c6e5e0951675ad9b22294db4a10741c7)

francolol
09-08-2014, 12:19
Grazie a tutti per le risposte. Avrei qualche altra domanda:
secondo voi conviene usare QtDesigner? e se si come trasformo il file .ui in .py tramite pyuic?
Provando a rifare l'interfaccia di logIn non riesco a collegare la funzione da me creata al Push Button. Potete dirmi dove sbaglio?

import sys
from PyQt4 import QtGui,QtCore



class FantaGoal(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.Login()


def Login(self):
lWidget = QtGui.QWidget(self)


gridL = QtGui.QGridLayout(lWidget)
vbox = QtGui.QVBoxLayout()
vbox2 = QtGui.QVBoxLayout()

self.User = QtGui.QLabel('Username: ', lWidget)
self.Passw = QtGui.QLabel('Password: ', lWidget)
self.Username = QtGui.QLineEdit(lWidget)
self.Password = QtGui.QLineEdit(lWidget)
self.Password.setEchoMode(QtGui.QLineEdit.Password)




self.Registrazione = QtGui.QPushButton('Registrati', lWidget)
self.Button = QtGui.QPushButton('Login',lWidget)
self.connect(self.Button, QtCore.SIGNAL('clicked()'), Verifica_LogIn(self))
vbox2.addWidget(self.Button)
vbox2.addWidget(self.Registrazione)

vbox.addWidget(self.User)
vbox.addWidget(self.Username)
vbox.addWidget(self.Passw)
vbox.addWidget(self.Password)

gridL.addLayout(vbox, 0, 0)
gridL.addLayout(vbox2, 0, 1)


lWidget.setLayout(gridL)
self.setCentralWidget(lWidget)

def Verifica_LogIn(self):
Prova = self.Username.text()
if Prova == 'M':
print('Ciao M')

pabloski
09-08-2014, 13:57
Tuesday July 08 2014 (https://qt.gitorious.org/pyside/pyside/commits/0c64d1b2c6e5e0951675ad9b22294db4a10741c7)

Non sapevo avessero spostato. Io ho guardato qui https://github.com/PySide/PySide

pabloski
09-08-2014, 14:02
e se si come trasformo il file .ui in .py tramite pyuic?

pyuic4 -x nomefile.ui -o nomefile.py

imho ti conviene usare qtdesigner, non vedo perchè non dovresti