summaryrefslogtreecommitdiffhomepage
path: root/pt-br/pyqt-pt.html.markdown
blob: d09062746a08a2177c6cdba9f171b36a501ace90 (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
82
83
84
85
86
87
88
89
90
91
---
category: framework
framework: PyQT
filename: learnpyqt-pt.py
contributors:
    - ["Nathan Hughes", "https://github.com/sirsharpest"]
translators:
    - ["Lucas Pugliesi", "https://github.com/fplucas"]
lang: pt-br
---

**Qt** é amplamente conhecido como um framework para desenvolvimento de
software multi-plataforma que pode rodar em várias outras plataformas de
softwares e hardwares com pouca ou nenhuma alteração no código, enquanto mantém
o poder e a velocidade de uma aplicação nativa. Embora o **Qt** tenha sido
originalmente escrito em *C++*.


Essa é uma adaptação de uma introdução ao QT em C++ por
[Aleksey Kholovchuk](https://github.com/vortexxx192), alguns dos exemplos de
código podem resultar na mesma funcionalidade que essa versão, apenas usando
o pyqt!

```python
import sys
from PyQt4 import QtGui

def window():
	# Cria um objeto para a aplicação
    app = QtGui.QApplication(sys.argv)
	# Cria um widget onde o nosso label será inserido
    w = QtGui.QWidget()
	# Adiciona um label ao widget
    b = QtGui.QLabel(w)
	# Informa algum texto ao label
    b.setText("Hello World!")
	# Define os tamanhos e posições dos objetos
    w.setGeometry(100, 100, 200, 50)
    b.move(50, 20)
	# Define o título da janela
    w.setWindowTitle("PyQt")
	# Exibe a janela
    w.show()
	# Executa tudo o que foi pedido, apenas uma vez
    sys.exit(app.exec_())

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

Para utilizar mais funcionalidades no **pyqt** veremos a construção de alguns
outros elementos.
Aqui mostraremos como criar uma janela popup, muito útil para perguntar ao
usuário qual decisão tomar ou exibir alguma informação.

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


def window():
    app = QApplication(sys.argv)
    w = QWidget()
    # Cria um botão e o anexa ao widget w
    b = QPushButton(w)
    b.setText("Press me")
    b.move(50, 50)
    # Informa b a chamar essa função quando for clicado
    # observe que a função chamada não necessita de "()"
    b.clicked.connect(showdialog)
    w.setWindowTitle("PyQt Dialog")
    w.show()
    sys.exit(app.exec_())

# Essa função deve criar uma janela de diálogo com um botão,
# aguarda ser clicado e encerra o programa
def showdialog():
    d = QDialog()
    b1 = QPushButton("ok", d)
    b1.move(50, 50)
    d.setWindowTitle("Dialog")
    # Essa modalidade define que o popup deve bloquear as outras janelas quando ativo
    d.setWindowModality(Qt.ApplicationModal)
    # Ao ser clicado deve encerrar o processo
    b1.clicked.connect(sys.exit)
    d.exec_()

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