Python

Já faz algum tempo que venho brincando com o Python e mais recentemente com o PyGTK e PyQt. Não faço a menor ideia de onde estes posts irão me levar, mas sendo fiel a proposta inicial deste site, não posso deixar de postar estas agradáveis experiências com o Python.

Tutoriais de Python e Qt4

Isto é uma sequência da tutoriais, sobre programação com Python e PyQt4:

Python

  • Python 1 – Uma introdução ao Python
  • Python 2 – Tipos no Python
  • Python 3 – Estruturas de controle
  • PyQt

  • MCalc – Calculadora para trabalhar com incertezas
  • PyQt 01 – O Primeiro Programa
  • PyQt 02 – Criando uma caixa de mensagem
  • PyQt 03 – Diálogos com QMessageBox
  • PyQt 04 – Diálogos com QInputDialog
  • PyQt 05 – Diálogo QFileDialog
  • PyQt 06 – Mais diálogos
  • PyQt 07 – QLabel e Qt Designer
  • PyQt 08 – QLineEdit e mais Qt Designer
  • PyQt 09 – QPushButton, apertando os botões
  • PyQt 10 – QCheckBox e QRadioButton: checando as opções
  • PyQt 11 – QButtonGroup e QGroupBox: mais opções
  • PyQt 12 – QComboBox
  • PyQt 13 – QSpinBox, QProgressBar e + sinais
  • Tutorial de Python+GTK

    Antes de iniciar com o Qt, me aventurei com o GTK. Foi uma experiência muito agradável e acabei por fazer este pequeno tutorial:

  • PyGTK 01: Conversor de temperatura
  • Apresentação de Python

    A pedido de um curso de extensão em minha instituição, fiz esta apresentação de um Curso de Python, baseado nos materiais de Christian R. Reis, Python na Prática, do criador da linguagem Guido van Rossum, Tutorial Python, documentação do Python e mais alguns incrementos pessoais.

    Dicas

    Sempre aparece um problema ou outro que nos dá algum trabalho, seja com pesquisas na internet, consultando uma lista, ou a um livro. Esta seção de Dicas, vou colocar algumas pérolas encontradas pela rede, as quais, em algum momento tive dúvida como se faz, ou mesmo, uma solução interessante para algum problema.

  • Python: Mudando o nome de um processo
  • Python: Pegando o endereço IP
  • You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

    11 comments so far

    1. Artur Fernandes

      Maio 7th, 2010 at 2:11 pm

      Saudações,

      Estou desenvolvendo um sistema opensource de gerenciamento de patrimônio,e resolvi usar Python por ser multiplataforma e ter uma boa performance. Porém recentemente tive um problema ao tentar gerar um Relatório usando a biblioteca Qt, eu consigo imprimir corretamente, porém não consigo gerar a visualização utilizando o QPrintPreviewDialog, eu já procurei diversas listas e exemplos, porém os poucos que eu encontrei foram escritos em C e não consegui trazê-los para o Python, você conhece alguma lista de discussão, fórum ou como fazer isso?

      Desde já Agradeço e me desculpo pelo incômodo.

    2. rudsonalves

      Maio 8th, 2010 at 8:54 am

      Olá Artur Fernandes,

      Eu realmente nunca fiz isto, mas experimente o código a seguir, e veja se resolve seu problema.

      O Baixei da página “http://orangepalantir.org/topicspace/index.php?idnum=31″. Aqui em minha máquina ele gerou um preview da página do google, perfeitamente. Somente não experimentei enviar para a impressora.

      Essencialmente o código faz o que esta descrito na página do QPrintPreviewDialog (http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qprintpreviewdialog.html na seção “Detailed Description”).

      Infelizmente todo (ou quase todo) código na documentação do PyQt está em C++.

      —————————————————————
      #!/usr/bin/env python
      # -*- coding: iso-8859-1 -*-

      “”"
      Lets get the print thing working
      “”"
      from PyQt4.QtGui import *
      from PyQt4.QtCore import *
      import PyQt4.QtWebKit as QtWebKit

      import sys

      class htmlViewer(QtWebKit.QWebView):
      def __init__(self,url, parent=None):
      QtWebKit.QWebView.__init__(self,parent)
      self.setUrl(QUrl(url))
      self.preview = QPrintPreviewDialog()
      self.connect(self.preview,SIGNAL(“paintRequested (QPrinter *)”),SLOT(“print (QPrinter *)”))
      self.connect(self,SIGNAL(“loadFinished (bool)”),self.execpreview)
      def execpreview(self,arg):
      print arg
      self.preview.exec_()

      if __name__==”__main__”:
      app = QApplication(sys.argv)

      myurl = “http://www.google.com”
      widget = htmlViewer(myurl)
      widget.show()

      sys.exit(app.exec_())
      —————————————————————

    3. Artur Fernandes

      Maio 12th, 2010 at 9:07 am

      Rapaz, nem sei como te agradecer, eu consegui o que eu queria com o seu exemplo, segue o código:

      [code]

      #!/usr/bin/python
      # -*- coding: utf-8 -*-
      from PyQt4.QtCore import *
      from PyQt4.QtGui import *
      from PyQt4 import QtCore
      from PyQt4.QtWebKit import QWebView

      class ProgramaImpressor(QDialog):
      def __init__(self,parent=None):
      super(ProgramaImpressor,self).__init__(parent)
      rotuloNome=QLabel("Nome: ")
      rotuloEndereco=QLabel(u"Endereço: ")
      rotuloOutros=QLabel("Diversos: ")
      self.impressor=QPrinter()
      self.txtnome=QLineEdit()
      self.txtendereco=QLineEdit()
      self.txtdiversos=QTextEdit()
      self.btnimprimir=QPushButton("&Imprimir")
      layoutHorizontal=QHBoxLayout()
      layoutHorizontal2=QHBoxLayout()
      layoutHorizontal3=QHBoxLayout()
      layoutVertical=QVBoxLayout()
      layoutHorizontal.addWidget(rotuloNome)
      layoutHorizontal.addWidget(self.txtnome)
      layoutHorizontal2.addWidget(rotuloEndereco)
      layoutHorizontal2.addWidget(self.txtendereco)
      layoutHorizontal3.addWidget(rotuloOutros)
      layoutHorizontal3.addWidget(self.txtdiversos)
      layoutVertical.addLayout(layoutHorizontal)
      layoutVertical.addLayout(layoutHorizontal2)
      layoutVertical.addLayout(layoutHorizontal3)
      layoutVertical.addWidget(self.btnimprimir)
      self.setLayout(layoutVertical)
      self.dialogo=QPrintPreviewDialog()
      self.html=u""
      self.documento=QWebView()
      #self.connect(self.dialogo, SIGNAL("paintRequested (QPrinter *)"),SLOT("print (QPrinter *)"))
      self.connect(self.dialogo, SIGNAL("paintRequested (QPrinter *)"),self.documento.print_)
      self.connect(self.documento,SIGNAL("loadFinished (bool)"),self.previaImpressao)
      self.connect(self.btnimprimir, SIGNAL("clicked()"),self.imprimir)

      def previaImpressao(self,arg):
      self.dialogo.exec_()

      def imprimir(self,html=None):
      #self.documento.clear()
      html=u"Relatório de Teste de Impressão\
      \
      O nome digitado Foi: %s\
      O endereço da pessoa é: %s\
      Os demais comentários São:\
      %s"%(self.txtnome.text(),self.txtendereco.text(),self.txtdiversos.toHtml())
      self.documento.setHtml(html)
      #self.documento.show()

      if __name__ == "__main__":
      import sys
      app = QApplication(sys.argv)
      JanelaPrincipal = ProgramaImpressor()
      JanelaPrincipal.show()
      app.exec_()

      [/code]

    4. rudsonalves

      Maio 13th, 2010 at 9:44 am

      Que bom, esta é a intenção.

    5. tonyfrasouza

      Julho 21st, 2010 at 12:50 pm

      Onde consigo estes módulos:

      from PyQt4.QtCore import *
      from PyQt4.QtGui import *
      from PyQt4 import QtCore
      from PyQt4.QtWebKit import QWebView

      Estou começando a me aventurar no mundo python. Meu sistema operacional é o Ubuntu Linux Lucid

    6. rudsonalves

      Julho 21st, 2010 at 4:08 pm

      Não uso o Ubuntu, mas como ele é baseado no Gnome, deve ser por isto que não está funcionando em seu sistema. Se não me engano o pacote é python-qt4.

      Tente uma pesquisa no sistema de pacotes por pyqt para ter certeza:

      # aptitude search pyqt

      Depois o instale, como de praxe:

      # aptitude install python-qt4

    7. rudsonalves

      Julho 21st, 2010 at 7:46 pm

      Dei uma olhada na última versão do Ubuntu 10.04, o pacote para PyQt4 é o pyqt4-dev-tools. Este é uma espécie de templete que instala vários pacotes relacionados ao PyQt4.

    8. Almir 'm3nd3s'

      Setembro 23rd, 2010 at 7:00 pm

      Só queria lhe dar a notícia de que agora estou investindo meu tempo em aprender Python e Ruby(rails).

      Em breve poderei lhe ajudar em alguns projetos para que eu possa aprender mais :-D .

    9. rudsonalves

      Setembro 24th, 2010 at 4:50 pm

      Estou aguardando

    10. wesley

      Março 10th, 2011 at 2:15 am

      Você conhece alguma biblioteca ou código em python para trabalhar com sistemas biometria gostaria de fazer um controle alunos com sistema biométrico para controlar a chamada você conhece algo que eu possa utilizar

    11. rudsonalves

      Março 10th, 2011 at 3:05 pm

      Olá Wesley,

      Infelizmente não conheço muito sobre o assunto. Buscando na rede encontrei uma mensagem do Rafael Alencar, que está fazendo algo parecido em MG. Talvez entrar em contato com ele ajude. Veja o link abaixo, sobre uma discussão no Python Português:

      https://groups.google.com/group/python-em-portugues/browse_thread/thread/7b7eaa820b82dc49?hl=pt

    Leave a reply

    Spam Protection by WP-SpamFree

    Back to top