Startec

Startec

GUIs com Python e PyQt5 - Introdução · Gui98

Mai 22, às 19:02

·

5 min de leitura

·

0 leituras

Olá para todos! Como estão? Espero que bem! Começarei uma série de artigos sobre a criação de Interface Gráfica do Usuário (GUI) na linguagem Python com a biblioteca PyQt5. Mas por que Py...
GUIs com Python e PyQt5 - Introdução · Gui98

Olá para todos! Como estão? Espero que bem!

Começarei uma série de artigos sobre a criação de Interface Gráfica do Usuário (GUI) na linguagem Python com a biblioteca PyQt5. Mas por que Python e por que a biblioteca PyQt5? Por alguns motivos:

  1. Python é uma das linguagens mais usadas atualmente;
  2. As bibliotecas são atualizadas constantemente;
  3. É uma linguagem de fácil entendimento;
  4. As aplicações geradas com PyQt5 podem ser multiplataforma;
  5. A biblioteca PyQt5 conta com uma GUI para desenhar as aplicações sem a necessidade de escrever o código.

Sem mais delongas, vamos ao artigo!

1 . Uma breve história da Interface Gráfica do Usuário (GUI)

A Interface Gráfica do Usuário tem uma longa e venerável história que remonta já na década de 1960. O NLS (oN-Line System) de Stanford introduziu o conceito de conceito de mouse e telas, demonstrado publicamente pela primeira vez em 1968. Este foi seguido pelo sistema Xerox PARC Smalltalk GUI 1973, que é a base da maioria das GUIs modernas de uso geral.

Figura 1: NLS

Figura 2: Xerox Alto

Estes primeiros sistemas já tinham muitas das características que tomamos por garantidas nas GUIs de ambiente de trabalho modernas, incluindo janelas, menus, botões de rádio, caixas de verificação e, mais tarde, ícones. Esta combinação de características deu-nos o primeiro acrónimo utilizado para este tipo de interfaces: WIMP (windows, icons, menus, pointing device?-?um mouse).

Em 1979, foi lançado o primeiro sistema comercial com uma GUI?-?a estação de trabalho PERQ. Esta iniciativa deu origem a uma série de outros sistemas com GUI, nomeadamente a Apple Lisa (1983), que acrescentou o conceito de barra de menus e controlos de janelas. Assim como muitos outros sistemas, como o Atari ST (GEM) e o Amiga. Em 1984, no UNIX (e mais tarde no Linux), o X Window System surgiu em 1984. A primeira versão do Windows para PC foi lançada em 1985.

As primeiras GUIs não foram o sucesso instantâneo que poderíamos supor, devido à falta de software compatível no lançamento e aos requisitos de hardware dispendiosos?-?especialmente para utilizadores domésticos. Lentamente, mas de forma constante, a GUI tornou-se a forma preferida de interagir com os computadores e o WIMP estabeleceu-se firmemente como padrão. Isso não quer dizer que não tenha havido tentativas de substituir o WIMP no ambiente de trabalho. O Microsoft Bob (1995), por exemplo, foi a tentativa fracassada da Microsoft de substituir o ambiente de trabalho por uma "casa".

Não faltaram outras GUIs aclamadas como revolucionárias em seu tempo, desde o lançamento do Windows 95 (1995) até o Mac OS X (2001), GNOME Shell (2011) e Windows 10 (2015). Cada um deles reformulou as interfaces de usuário de seus respectivos sistemas de desktop, geralmente com muito alarde. Mas, fundamentalmente, nada mudou de fato. Essas novas interfaces de usuário ainda são sistemas WIMP e funcionam exatamente da mesma forma que as GUIs desde a década de 1980.

Quando a revolução chegou, ela foi gritante- o mouse foi substituído pelo toque e as telas por aplicativos de tela cheia. Mas mesmo em um mundo em que todos nós andamos com smartphones no bolso, uma grande quantidade de trabalho diário ainda é feita em computadores desktop. O WIMP sobreviveu a quatro décadas de inovação e parece que sobreviverá a muitos outros.

2. Um pouco sobre Qt

O Qt é um kit de ferramentas de widget gratuito e de código aberto para a criação de aplicativos GUI multiplataforma, permitindo que os aplicativos sejam direcionados a várias plataformas do Windows, macOS, Linux e Android com uma única base de código. Mas o Qt é muito mais do que um kit de ferramentas de widget e apresenta suporte integrado para multimídia, bancos de dados, gráficos vetoriais e interfaces MVC (Model-View-Controller), é mais correto pensar nele como uma estrutura de desenvolvimento de aplicativos.

O Qt foi criado por Eirik Chambe-Eng e Haavard Nord em 1991, fundando a primeira empresa de Qt, a Trolltech, em 1994. Atualmente, o Qt é desenvolvido pela The Qt Company e continua a ser atualizado regularmente, adicionando recursos e ampliando o suporte a dispositivos móveis e plataformas cruzadas, ampliando o suporte móvel e entre plataformas.

3. Qt e PyQt5

O PyQt5 é uma ligação Python do kit de ferramentas Qt, desenvolvido pela Riverbank Computing. Quando você escreve aplicativos usando o PyQt5, o que está realmente fazendo é escrever aplicativos em Qt. A biblioteca PyQt5 é simplesmente uma capa em torno da biblioteca Qt C++, para permitir que ela seja usada em Python.

Como essa é uma interface Python para uma biblioteca C++, as convenções de nomenclatura usadas no PyQt5 não seguem os padrões PEP8. Mais notavelmente, as funções e variáveis são nomeadas usando mixedCase em vez de snake_case. Se você adere ou não a esse padrão em seus próprios aplicativos, depende inteiramente de você; no entanto, acho que é útil seguir os padrões Python em meu próprio código, para ajudar a esclarecer onde termina o código do PyQt5 e começa o seu.

Por fim, embora exista uma documentação específica do PyQt5 disponível, você frequentemente lerá a própria documentação do Qt, pois ela é mais completa. Se fizer isso, você precisará traduzir a sintaxe do objeto e alguns métodos que contêm nomes de funções reservadas do Python, como por exemplo:

QtPyQt
Qt::SomeValueQt.SomeValue
object.exec()object.exec_()
object.print()object.print_()

Por hoje é só! Te vejo no próximo artigo!


Continue lendo

Showmetech

Motorola Razr Plus é o novo dobrável rival do Galaxy Z Flip
Após duas tentativas da Motorola em emplacar — novamente — telefones dobráveis, eis que temos aqui a terceira, e aparentemente bem-vinda, tentativa. Estamos falando do Motorola Razr Plus, um smartphone...

Hoje, às 15:20

DEV

Mentoring for the LGBTQ+ Community
Once unpublished, all posts by chetanan will become hidden and only accessible to themselves. If chetanan is not suspended, they can still re-publish their posts from their dashboard. Note: Once...

Hoje, às 15:13

TabNews

IA: mais um arrependido / Déficit de TI / Apple: acusação grave · NewsletterOficial
Mais um pioneiro da IA se arrepende de seu trabalho: Yoshua Bengio teria priorizado segurança em vez de utilidade se soubesse o ritmo em que a tecnologia evoluiria – ele junta-se a Geoffr...

Hoje, às 14:37

Hacker News

The Analog Thing: Analog Computing for the Future
THE ANALOG THING (THAT) THE ANALOG THING (THAT) is a high-quality, low-cost, open-source, and not-for-profit cutting-edge analog computer. THAT allows modeling dynamic systems with great speed,...

Hoje, às 14:25

TabNews

[DISCUSÃO/OPINIÕES] – Outsourcing! O que, para quem, por que sim, por que não! · dougg
Quero tentar trazer nesta minha primeira publicação, uma mistura de um breve esclarecimento sobre o que são empresas de outsourcing, como elas funcionam e ganham dinheiro, mas também, ven...

Hoje, às 13:58

TabNews

Duvida: JavaScript - Desenvolver uma aplicação que vai ler um arquivo *.json · RafaelMesquita
Bom dia a todos Estou estudando javascript e me deparei com uma dificuldade e preciso de ajuda *Objetivo do estudo: *desenvolver uma aplicação que vai ler um arquivo *.json Conteudo do in...

Hoje, às 13:43

Showmetech

Automatize suas negociações com um robô de criptomoedas
Índice Como o robô de criptomoedas Bitsgap funciona?Qual a vantagem de utilizar um robô de criptomoedas?Bitsgap é confiável? O mercado de trading tem se tornado cada vez mais popular e as possibilidades de...

Hoje, às 13:13

Hacker News

Sketch of a Post-ORM
I’ve been writing a lot of database access code as of late. It’s frustrating that in 2023, my choices are still to either write all of the boilerplate by hand, or hand all database access over to some...

Hoje, às 13:11

Showmetech

14 chuveiros elétricos para o banho dos seus sonhos
Índice Chuveiro ou Ducha?Tipos de chuveiro elétrico9 fatores importantes para considerar na hora de comprar chuveiros elétricosMelhores chuveiros elétricosDuo Shower LorenzettiFit HydraAcqua Storm Ultra...

Hoje, às 11:00

DEV

Learn about the difference between var, let, and const keywords in JavaScript and when to use them.
var, let, and const: What's the Difference in JavaScript? JavaScript is a dynamic and flexible language that allows you to declare variables in different ways. You can use var, let, or const keywords to...

Hoje, às 10:21