Primeiros passos com Python + Qt # 1

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:

3

Veja o código

Nós o executamos no console assim:

python app1.py

Esta janela deve aparecer

2

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.

LINK PARA O FÓRUM

Espero que te atendam, me despeço, como sempre um prazer pertencer a esta comunidade maravilhosa.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   @ trust17 dito

    Obrigado pela postagem!

  2.   Anúbis dito

    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 🙂

    1.    f3niX dito

      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.

    2.    f3niX dito

      Não posso modificar, deixo isso para algum editor.

      Saudações.

      1.    Neysonv dito

        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

  3.   Germán dito

    Uma coisa me impressiona: por que você usa "from import *" em seu código?

    Saudações!

    1.    f3niX dito

      É 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.

      1.    Germán dito

        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 ..."

        1.    f3niX dito

          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.

          1.    f3niX dito

            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.

          2.    Germán dito

            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?

          3.    Felipe dito

            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

          4.    Germán dito

            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!

        2.    f3niX dito

          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

          1.    caçador dito

            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

  4.   msx dito

    Tava querendo mais, pra quando a 2ª parte !?
    Saudações 🙂

  5.   eliotime3000 dito

    Tutoriais muito bons, além de ser mais confortável de programar.

  6.   caçador dito

    Aqui está um exemplo de uma interface do zero (sem usar o QtDesigner).

    https://github.com/xr09/metrocontador

    1.    f3niX dito

      O app dhunter é excelente, aqui nem sabemos quanto nos cobram pela eletricidade, haha ​​saudações.

      1.    caçador dito

        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.

  7.   Jose Eloy dito

    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

  8.   Bryan Rodriguez dito

    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?.

    1.    Felipe dito

      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

      1.    Felipe dito

        #! / usr / bin / python3
        ou senão
        #! / usr / bin / python2

        1.    f3niX dito

          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.

          1.    Bryan Rodriguez dito

            Como posso verificar isso?

          2.    f3niX dito

            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.

          3.    Bryan Rodriguez dito

            Muito obrigado, foi muito útil para mim.

          4.    Maurício Tobares dito

            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 😀

      2.    Bryan Rodriguez dito

        Recebo o mesmo erro.

        1.    Germán dito

          Você tem o PySide instalado?

          1.    Bryan Rodriguez dito

            Eu tenho instalado.

        2.    Felipe dito

          E experimente o PyQT4, instale-o e altere as linhas do PySide para PyQT4 ou PyQt4 e execute-o. Jojo. Use o eclipse. Sorte.

          1.    Bryan Rodriguez dito

            Como faço isso?.

  9.   Karlinux dito

    Muito obrigado !!! Esperando pelo segundo capítulo

    1.    f3niX dito

      Para esta sexta-feira posso publicá-lo (A universidade me encheu um pouco) saudações.

  10.   Maurício Tobares dito

    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 😀

    1.    f3niX dito

      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á

  11.   Dante dito

    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

  12.   jorge dito

    Olá, muito bom seu post, tenho uma dúvida, posso vender meu app feito em pyside sem problemas?

    1.    f3niX dito

      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.