Este tutorial é focado em ensinar o uso do framework QT usando Python como linguagem de programação, para isso podemos usar PySide e PyQt, mas neste tutorial usaremos PySide porque o autor deste tutorial gosta mais da licença LGPL PySide. do que o GPL ou PyQt Commercial.
Primeiro ... O que é Python?
De acordo com a Wikipedia:
"Python é uma linguagem de programação interpretada de alto nível, cuja filosofia enfatiza uma sintaxe muito limpa e favorece o código legível."
Python é uma linguagem de programação multipadradigma, portanto, suporta diferentes paradigmas de programação Python, por exemplo, suporta: Programação Orientada a Objetos (OOP), Programação Imperativa (Estruturada) e, em menor medida, programação Funcional.
Só isso?
Não, também é uma linguagem de tipagem dinâmica, o que significa que python nos permite atribuir diferentes tipos de valores à mesma variável durante a execução do programa, alguns vêem isso como uma vantagem, outros como uma desvantagem, veja por si mesmo.
Além do que já foi mencionado, o Python permite-nos (como muitos outros), programar tanto no ambiente web como no web desktop, também é multiplataforma, atualmente suporta Gnu / Linux, Windows, Mac osx, Android (se precisar mencioná-los para o seu modificação).
O que é QT?
QT é um framework multiplataforma, originalmente desenvolvido pela Nokia, para depois ser vendido para a Digia, que é usado para desenvolvimento de aplicativos, é escrito em C ++, mas pode ser usado em outras linguagens através de Bindings (no nosso caso PySide ou PyQt )
Diferenças entre PySide e PyQt
Principalmente
- Licença, o PySide é licenciado sob os termos da LGPL e o PyQT está sob os termos da GPL ou sob uma licença comercial, portanto, precisaríamos pagar no caso de criar um aplicativo fechado.
- O PySide foi criado pela Nokia e o PyQt pelo RiverBank.
- PySide nos livra do trabalho de usar STR toda vez que usamos o QString de cada um dos objetos QT.
Podemos detalhar as mudanças completas Aqui.
Preparação:
Instalamos o Qt:
Se tivermos uma distribuição com Kde, já devemos ter o que precisamos, caso contrário:
sudo apt-get install qt4-dev-tools
Instalamos o PySide:
sudo apt-get install pyside pyside-tools
Nosso primeiro aplicativo Python + QT
Vamos ao nosso editor de texto favorito, recomendo que instale sublime-text2, mas você pode usar o que preferir, e digitamos o seguinte código e salvamos com o nome que queremos terminando sempre com a extensão ".py", eu irei Vou salvar como app1.py:
Nós o executamos no console assim:
python app1.py
Esta janela deve aparecer
Só isso, porque se você só tinha um console antes, do que está reclamando? O que você esperava, um Erp? vamos lá cara, algo começa.
Agora vamos explicar o código:
from PySide.QtGui import *
from sys import exit, argv
Aqui importamos os módulos necessários para a execução do PySide.
app = QApplication(argv)
Criamos a instância Qapplication com o nome app.
window = Qwidget()
Criamos a instância de QWidget ().
window.setWindowTitle("Primera App PySide")
Executamos o método setWindowTitle, que recebe uma String como parâmetro para "definir" o título do nosso Qwidget.
window.show()
Nós mostramos nossa janela
exit(app.exec_())
finalmente executamos o ciclo infinito de execução de nosso QApplication ().
obrigado
Obrigado por aqueles que me seguiram aqui e foram úteis. No próximo tutorial, explicarei como projetar nossas janelas com o QT Designer e importá-las para nossos projetos.
Além disso, adiciono o link para o fórum desde linux onde tenho um pequeno tema com uma pequena biblioteca de tutoriais e guias de python, contendo diferentes termos, incluindo:
Tutoriais básicos de Python
WxPythonName
PyQt e PySide
Django
web2py
Programação científica em python.
E muitos mais.
Espero que te atendam, me despeço, como sempre um prazer pertencer a esta comunidade maravilhosa.
Obrigado pela postagem!
2 coisas:
1. O Qt não foi originalmente desenvolvido pela Nokia, mas pela Trolltech, que mais tarde foi comprada pela Nokia. Este último então vendeu o Qt para a Digia.
2. A imagem no primeiro exemplo de aplicativo não corresponde ao código.
Obrigado pelo tutorial, vou segui-lo 🙂
Você está absolutamente certo, eu perdi isso. E a segunda coisa que você também tem razão, é que mudei para ficar mais fácil e não usar aula e perdi a modificação, erros de iniciante. Já passei as correções para algum editor aprovar.
Não posso modificar, deixo isso para algum editor.
Saudações.
Envie um e-mail para um editor com o tutorial corrigido. Você pode enviar para o e-mail de @nano que é um dos editores
mailto: nano.world.contact@gmail.com
por favor não saia do tutorial assim
lembranças
Uma coisa me impressiona: por que você usa "from import *" em seu código?
Saudações!
É a forma correta de importar, ao importar assim você diz qual classe específica do módulo deseja importar, e não chama o módulo completo.
Saudações.
Acho isso meio confuso. Além disso, não é recomendado no PEP8:
"Importações de curingas (do módulo de importação *) devem ser evitadas, pois não deixam claro quais nomes estão presentes no namespace, confundindo os leitores e muitas ferramentas automatizadas ..."
Tenho sido guiado principalmente por códigos profissionais, como Ninja-Ide, você pode ver o código aqui: https://github.com/ninja-ide/ninja-ide/blob/master/ninja_ide/core/ipc.pyIsso também é feito no PyQt, mas de forma alguma não há nada que o obrigue a usar um formulário ou outro.
Aqui você pode ver uma discussão sobre StackOverflow, sobre isso:
http://stackoverflow.com/questions/710551/import-module-or-from-module-import
Lá eles mencionam prós e contras de cada um dos estilos.
a ok desculpe não te entendi, eu sei disso, só fiz isso porque não ia dar uma explicação de cada elemento QApplication, QWidget, então generalize mas você está absolutamente certo.
Desculpe o mal-entendido.
Não, você não entendeu ou não prestou atenção ... Quero dizer, usando «from module import *», ou seja, quero dizer o «asterisco» ... naquele post StackOverflow eles estão falando sobre outra coisa, mas eles ainda enfatizam isso:
"Qualquer um dos métodos é aceitável, mas não use from module import *."
Está entendido agora?
Alemão está certo. Qual a utilidade é a importação do módulo from se você importar todo o conteúdo com o asteric, para esse módulo de importação. Slds tão bom post
Ahh bem, agora entendi ... de qualquer forma, não demore muito, também sou um iniciante em Python. Se você visitar meu blog, verá que fiz um post parecido com o seu, mas com Gtk + 3 usando PyGObject.
Cumprimentos e obrigado!
Deixo aqui o Pep8, em espanhol recomendando o uso de im
É altamente desaconselhável usar importações relativas para importar código de um pacote. Sempre use o caminho do pacote absoluto para todas as importações. Mesmo agora que o PEP 328 [7] está totalmente implementado no Python 2.5, o uso de importações relativas é seriamente desencorajado; as importações absolutas são mais portáteis e geralmente mais legíveis.
Ao importar uma classe de um módulo, geralmente é correto fazer isso
de minhaclasse importe minhaclasse
de foo.bar.yourclass import YourClass
lembranças
Leia isso: http://stackoverflow.com/questions/3615125/should-wildcard-import-be-avoided
Alex Martelli (desenvolvedor central de py) recomenda algo assim:
from PyQt4 import QtCore, QtGui
Tava querendo mais, pra quando a 2ª parte !?
Saudações 🙂
Tutoriais muito bons, além de ser mais confortável de programar.
Aqui está um exemplo de uma interface do zero (sem usar o QtDesigner).
https://github.com/xr09/metrocontador
O app dhunter é excelente, aqui nem sabemos quanto nos cobram pela eletricidade, haha saudações.
Obrigado, é um daqueles aplicativos que se faz para uso pessoal e serve aos outros. Aqui em Cuba o recibo é discriminado com a taxa, é fácil copiar o algoritmo.
Estarei muito ciente desse curso. Há muito tempo me interesso por aplicativos multiplataforma e acho que a combinação Python + QT / Pyside é uma ótima opção. Saudações e parabéns pela iniciativa
Segui todas as etapas exatamente como você disse, mas quando executo o aplicativo app1.py no terminal, ele me diz Traceback (última chamada mais recente):
Arquivo "app1.py", linha 1, em
de importação PySide.QtGui *
ImportError: Nenhum módulo denominado PySide.QtGui. A que se deve?.
isso é porque você está usando uma versão do python como interpretador padrão, mas não tem o pyside instalado para essa versão.
Tente adicionar no início do arquivo:
#! usr / bin / python3
ou senão
#! usr / bin / python2
Eu recomendo que você use o Eclipse com pydev e configure bem o interpretador.
SLD
#! / usr / bin / python3
ou senão
#! / usr / bin / python2
PySide ainda não é compatível com Python3, cuidado com isso, e em segundo lugar, verifique as importações através do console interativo do python, para que você saiba se o instalou ou não, ele também instala o pip.
Como posso verificar isso?
Em um console use "Python", mesmo assim recomendo você entrar na biblioteca que deixei abaixo no post e baixar "python para todos", você precisa de mais base.
Saudações e boa sorte.
Muito obrigado, foi muito útil para mim.
olha amigo F3niX achei isso, parece que para python 3.3.2 no windows (que é o que tenho até a próxima semana) eles têm binários para 32 bits e 64 bits, tentei seu exemplo e funciona com python 3.3.2 e Eu uso o PyScripter que instala ambientes diferentes, se você abrir o python 3 ele executa os scripts como python 3 e se você abrir o 2.7 ele os executa como 2.7 e assim por diante (logicamente você tem que ter aquela versão do python instalada ... está entendido)
http://qt-project.org/wiki/PySide_Binaries_Windows
Vou te deixar aí, fofoca, talvez sirva para outra pessoa 😀
Recebo o mesmo erro.
Você tem o PySide instalado?
Eu tenho instalado.
E experimente o PyQT4, instale-o e altere as linhas do PySide para PyQT4 ou PyQt4 e execute-o. Jojo. Use o eclipse. Sorte.
Como faço isso?.
Muito obrigado !!! Esperando pelo segundo capítulo
Para esta sexta-feira posso publicá-lo (A universidade me encheu um pouco) saudações.
Amigo F3nIX estou aguardando seu tutorial N ° 2, 3, 4… N hehehe
Já tenho meu linux muito elegante instalado com PySide esperando e tudo!
Vamos ver quando ele é encorajado a mostrar um novo tutor 😀
Com licença amigo, estou com rascunhos, mas o trabalho e os estudos não me deram tempo, prometo lançar algo esta semana.
Um grande Olá
Olá, há muito tempo estou interessado em aprender Python, mas tenho algumas dúvidas. O que eu quero é fazer um aplicativo que melhore um pouco o processo de informação da empresa familiar onde trabalho, gostaria de fazer algo para windows, com windows primeiro funcionaria tudo em um único pc e depois que pode ser conectado via Internet ao banco de dados ao qual alguns computadores se conectariam. Há muita diversidade em termos de interface do aplicativo e isso me deixa tonto. O que você recomenda para dar um visual moderno e atraente? Também faria alguns gráficos estatísticos e imprimiria relatórios, o que posso usar para isso? Felicidades
Olá, muito bom seu post, tenho uma dúvida, posso vender meu app feito em pyside sem problemas?
Pois bem, as licenças são sempre loucas, mas as licenças de software livre também permitem vender software, o que acontece é que a GPL obriga a distribuir o código, ao contrário da LGPL, que não o obriga a fazê-lo.
De qualquer forma, não sou especialista em licenciamento.
Saudações.