summaryrefslogtreecommitdiffhomepage
path: root/es-es/pyqt-es.html.markdown
blob: ff9dbf248900a98d8459c98d4e9928bf75214647 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
---
category: framework
framework: PyQT
filename: learnpyqt-es.py
contributors:
    - ["Nathan Hughes", "https://github.com/sirsharpest"]
translators:
    - ["Adrian Rocamora", "https://github.com/adrianrocamora"]
lang: es-es
---

**Qt** es un sistema altamente reconocido que permite desarrollar software multiplataforma que puede correr en diferentes entornos de software y hardware con pocos o ningún cambio. Aun así conserva la velocidad y poder de una aplicación nativa. **Qt** fue originalmente escrito en *C++*.

Esta es una adaptación de la introducción a QT con C++ por [Aleksey Kholovchuk](https://github.com/vortexxx192), parte del código ejemplo debería resultar en la misma funcionalidad ¡pero usando python con PyQT!

```python
import sys
from PyQt4 import QtGui

def window():
    # Crear el objeto de la aplicación
    app = QtGui.QApplication(sys.argv)
    # Crear un widget en el que colocaremos nuestra etiqueta
    w = QtGui.QWidget()
    # Agregamos nuestra etiqueta al widget
    b = QtGui.QLabel(w)
    # Agregamos texto a nuestra etiqueta
    b.setText("Hello World!")
    # Fijemos información de posición y tamaño del widget
    w.setGeometry(100, 100, 200, 50)
    b.move(50, 20)
    # Proporcionemos un título a nuestra ventana
    w.setWindowTitle("PyQt")
    # Mostremos todo
    w.show()
    # Ejecutemos lo que hayamos solicitado ya inicializado el resto
    sys.exit(app.exec_())

if __name__ == '__main__':
    window()
```

Para poder hacer uso de las funciones más avanzades en **pyqt** necesitamos agregar elementos adicionales.
Aquí mostramos cómo introducir una caja de diálogo popup, útil para permitir al usuario confirmar su decisión o para brindarnos información.

```python
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *


def window():
    app = QApplication(sys.argv)
    w = QWidget()
    # Crear un botón y adjuntarlo al widget w
    b = QPushButton(w)
    b.setText("Press me")
    b.move(50, 50)
    # Indicar al botón b que llame esta función cuando reciba un click
    # Nótese la falta de "()" en la llamada de la función
    b.clicked.connect(showdialog)
    w.setWindowTitle("PyQt Dialog")
    w.show()
    sys.exit(app.exec_())

# Esta función debería crear una ventana de diálogo con un botón
# que espera a recibir un click y luego sale del programa
def showdialog():
    d = QDialog()
    b1 = QPushButton("ok", d)
    b1.move(50, 50)
    d.setWindowTitle("Dialog")
    # Esta modalidad le indica al popup que bloquee al padre mientras activo
    d.setWindowModality(Qt.ApplicationModal)
    # Al recibir un click me gustaría que el proceso termine
    b1.clicked.connect(sys.exit)
    d.exec_()

if __name__ == '__main__':
    window()
```