Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: 0x5d en 11 Febrero 2012, 20:13 pm



Título: [Tutorial]Aprendiendo PyQT4 [Parte2]- JaAViEr (0x5d)
Publicado por: 0x5d en 11 Febrero 2012, 20:13 pm
Hola nuevamente !

Siguiendo con el tutorial, pasaré a explicar como implementar un QLineEdit() y un QPushButton(), para que tengan una idea de que les hablo :
Código:
<input value="Esto es un QLineEdit()">
<input value="Esto es un QPushButton()" type="submit">
(ESO EN HTML)

  Ello mismo, pero en PyQT4. Bien, para poder insertar nuestro QLineEdit, debemos añadir bajo la línea del self.resize(200,200):
Código
  1. self.mi_qlinedit = QtGui.QLineEdit(self)
  2.  
Quedando así en nuestro form:
Código
  1. # -*- coding: utf-8 -*-
  2. from PyQt4 import QtCore, QtGui
  3. import sys
  4.  
  5. class Mi_Programa(QtGui.QWidget):
  6.  
  7.  def __init__(self, parent=None):
  8.  
  9.    QtGui.QWidget.__init__(self, parent)
  10.    self.resize(200,200) #Dimensiones del formulario
  11.    self.mi_qlinedit = QtGui.QLineEdit(self) # añadimos el QLineEdit
  12.  
  13. aplicacion = QtGui.QApplication(sys.argv)
  14. formulario = Mi_Programa() # Instanciamos la clase de nuestro programa
  15. formulario.show() # Mostramos el Formulario
  16. aplicacion.exec_() # Ejecutamos
  17.  
(http://rootcodes.com/tutorial_qt/qlinedit_ejemplo.png)
Y Pues para añadir un botón:
Código
  1. self.mi_boton = QtGui.QPushButton("Hola, soy un boton!", self)
  2.  
Nuestro formulario quedaría así:
Código
  1. # -*- coding: utf-8 -*-
  2. from PyQt4 import QtCore, QtGui
  3. import sys
  4.  
  5. class Mi_Programa(QtGui.QWidget):
  6.  
  7.  def __init__(self, parent=None):
  8.  
  9.    QtGui.QWidget.__init__(self, parent)
  10.    self.resize(200,200) #Dimensiones del formulario
  11.    self.mi_boton = QtGui.QPushButton("Hola, soy un boton!", self)
  12.  
  13. aplicacion = QtGui.QApplication(sys.argv)
  14. formulario = Mi_Programa() # Instanciamos la clase de nuestro programa
  15. formulario.show() # Mostramos el Formulario
  16. aplicacion.exec_() # Ejecutamos
(http://rootcodes.com/tutorial_qt/boton_ejemplo.png)

Nota: Podemos utilizar cualquier variable, siempre anteponiendo el self., solo que yo usé mi_boton para darle un nombre descriptivo.

  Bien, ya sabemos como insertar nuestros primeros Widgets en PyQT4, pero verás que al mezclar ambos, solo muestra un widget, esto sucede porque no le hemos dado una ubicación, por lo que ambos se posición en las coordenadas X = 0; Y = 0 , así uno se sobre pone del otro.

Entonces, ¿ Cómo ubico mi widget donde yo quiera ?

  Sencillo ! , debemos utilizar la propiedad setGeometry(X,Y,Width, Height) , Donde X será la ubicación hacia los costados e Y arriba y abajo. Aquí es donde yo recomiendo usar el QT Designer, pues nos ayudará a ubicar nuestro Widget de manera correcta y no dirá en que ubicación se encuentra.

  Recomiendo utilizar en el botón, el height 27, que es la altura de un botón normal. El width dependerá del ancho del texto de nuestro botón. (width = ancho ; height = altura)

  En lo que respecta el QLineEdit, recomiendo usar también el height = 27
  Así quedando la mezcla:
Código
  1. # -*- coding: utf-8 -*-
  2. from PyQt4 import QtCore, QtGui
  3. import sys
  4.  
  5. class Mi_Programa(QtGui.QWidget):
  6.  
  7.  def __init__(self, parent=None):
  8.  
  9.    QtGui.QWidget.__init__(self, parent)
  10.    self.resize(200,200) #Dimensiones del formulario
  11.    self.mi_boton = QtGui.QPushButton("Boton", self) # Creo el QPushButton()
  12.    self.mi_boton.setGeometry(10,40,92,27) #X = 10 ; Y = 15 ; Width = 92 ; Height = 27
  13.    self.mi_qlinedit = QtGui.QLineEdit(self) # Creo el QLineEdit()
  14.    self.mi_qlinedit.setGeometry(10,10,92,27) # X = 10 ; Y = 10 ; Width = 92 ; Height = 27
  15.  
  16. aplicacion = QtGui.QApplication(sys.argv)
  17. formulario = Mi_Programa() # Instanciamos la clase de nuestro programa
  18. formulario.show() # Mostramos el Formulario
  19. aplicacion.exec_() # Ejecutamos
Un ScreenShot:
(http://rootcodes.com/tutorial_qt/boton_qlinedit.png)

En la siguiente parte, explicaré como darle función a un botón e implementar un QLabel() con un resultado posterior !

Fuente : http://rootcodes.com/tutorialaprende-pyqt4-con-rootcodes-parte2

Saludos, Javier !