martes, 23 de junio de 2015

2 - Python PyQt (Interfaz gráfica) - Acceso a propiedades de elementos




En este capítulo modificaremos algunas propiedades del objeto MainWindow del archivo .ui generado en el capítulo anterior y también veremos como acceder a sus elementos internos a través de su nombre, por ejemplo a un elemento QPushButton para modificar sus estilos CSS.

MainWindow.pyw


import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5 import uic
from PyQt5.QtGui import QFont
from PyQt5.QtCore import Qt
import ctypes #GetSystemMetrics

#Clase heredada de QMainWindow (Constructor de ventanas)
class Ventana(QMainWindow):
 #Método constructor de la clase
 def __init__(self):
  #Iniciar el objeto QMainWindow
  QMainWindow.__init__(self)
  #Cargar la configuración del archivo .ui en el objeto
  uic.loadUi("MainWindow.ui", self)
  self.setWindowTitle("Cambiando el título de la ventana")
  #Mostrar la ventana maximizada
  self.showMaximized()
  #Fijar el tamaño de la ventana
  #Fijar el tamaño mínimo
  self.setMinimumSize(500, 500)
  #Fijar el tamaño máximo
  self.setMaximumSize(500, 500)
  #Mover la ventana y centrarla en el escritorio
  resolucion = ctypes.windll.user32
  resolucion_ancho = resolucion.GetSystemMetrics(0)
  resolucion_alto = resolucion.GetSystemMetrics(1)
  left = (resolucion_ancho / 2) - (self.frameSize().width() / 2)
  top = (resolucion_alto / 2) - (self.frameSize().height() / 2)
  self.move(left, top)
  #Desactivar la ventana
  #self.setEnabled(False)
  #Asignar un tipo de fuente
  qfont = QFont("Arial", 12, QFont.Bold)
  self.setFont(qfont)
  #Asignar un tipo de cursor
  self.setCursor(Qt.SizeAllCursor)
  #Asignar estilos CSS
  #self.setStyleSheet("background-color: #000; color: #fff;")
  #Modificar estilos de uno de los elementos de la ventana
  self.boton.setStyleSheet("background-color: #000; color: #fff; font-size: 14px;")
  
  
#Instancia para iniciar una aplicación
app = QApplication(sys.argv)
#Crear un objeto de la clase
_ventana = Ventana()
#Mostra la ventana
_ventana.show()
#Ejecutar la aplicación
app.exec_()


2 comentarios:

Eloy Antunez Agueda dijo...

En Notepad ++, pestaña ejecutar, Programa a ejecutar
PYTHON $(FULL_CURRENT_PATH)
este comando ejecuta directamente en la consola el fichero actual.

Anónimo dijo...

Estoy siguiendo este curso bajo linux, pero el ctypes windll no lo puedo implementar, cual seria su equivalente en linux?