learnxinyminutes-docs/es/pyqt.md

79 lines
2.6 KiB
Markdown
Raw Normal View History

2018-10-29 04:48:42 +00:00
---
2018-10-30 17:29:30 +00:00
filename: learnpyqt-es.py
2018-10-29 04:48:42 +00:00
contributors:
- ["Nathan Hughes", "https://github.com/sirsharpest"]
translators:
- ["Adrian Rocamora", "https://github.com/adrianrocamora"]
---
2018-10-30 17:29:30 +00:00
**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++*.
2018-10-29 04:48:42 +00:00
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
2018-10-29 04:48:42 +00:00
def window():
2018-10-29 04:59:58 +00:00
# Crear el objeto de la aplicación
2018-10-29 04:48:42 +00:00
app = QtGui.QApplication(sys.argv)
2018-10-29 04:59:58 +00:00
# Crear un widget en el que colocaremos nuestra etiqueta
2018-10-29 04:48:42 +00:00
w = QtGui.QWidget()
2018-10-30 17:29:30 +00:00
# Agregamos nuestra etiqueta al widget
2018-10-29 04:48:42 +00:00
b = QtGui.QLabel(w)
2018-10-29 04:59:58 +00:00
# Agregamos texto a nuestra etiqueta
2018-10-29 04:48:42 +00:00
b.setText("Hello World!")
2018-10-29 04:59:58 +00:00
# Fijemos información de posición y tamaño del widget
2018-10-29 04:48:42 +00:00
w.setGeometry(100, 100, 200, 50)
b.move(50, 20)
2018-10-29 04:59:58 +00:00
# Proporcionemos un título a nuestra ventana
2018-10-29 04:48:42 +00:00
w.setWindowTitle("PyQt")
2018-10-29 04:59:58 +00:00
# Mostremos todo
2018-10-29 04:48:42 +00:00
w.show()
2018-10-29 04:59:58 +00:00
# Ejecutemos lo que hayamos solicitado ya inicializado el resto
2018-10-29 04:48:42 +00:00
sys.exit(app.exec_())
if __name__ == '__main__':
window()
```
2018-10-30 17:29:30 +00:00
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.
2018-10-29 04:48:42 +00:00
```python
2018-10-29 04:48:42 +00:00
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_())
2018-10-29 05:01:55 +00:00
# Esta función debería crear una ventana de diálogo con un botón
2018-10-29 04:48:42 +00:00
# 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")
2018-10-29 04:53:03 +00:00
# Esta modalidad le indica al popup que bloquee al padre mientras activo
2018-10-29 04:48:42 +00:00
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()
```