PyQt - набор «привязок» графического фреймворка Qt

PyQt — набор «привязок» графического фреймворка Qt для языка программирования Python, выполненный в виде расширения Python.

PyQt разработан британской компанией Riverbank Computing. PyQt работает на всех платформах, поддерживаемых Qt: GNU/Linux и другие UNIX-подобные ОС, Mac OS X и Windows. Существует 2 варианта: PyQt4, поддерживающий Qt 4 и устаревший PyQt3, поддерживающий Qt 3 и более ранние версии. PyQt распространяется под лицензиями GPL (2 и 3 версии) и коммерческой.

PyQt практически полностью реализует возможности Qt. А это более 600 классов, более 6000 функций и методов, включая:

PyQt также включает в себя Qt Designer (Qt Creator) — дизайнер графического интерфейса пользователя. Программа pyuic генерирует Python код из файлов, созданных в Qt Designer. Это делает PyQt очень полезным инструментом для быстрого прототипирования. Кроме того, можно добавлять новые графические элементы управления, написанные на Python, в Qt Designer. Раньше PyQt поставлялся вместе со средой разработки Eric, написанной на PyQt. Eric имеет встроенный отладчик и может быть использована для создания консольных программ. Теперь она доступна в качестве отдельного проекта.

Пример: программа Hello World

   1 #!/usr/bin/python
   2 
   3 import sys
   4 from PyQt4 import QtGui, QtCore
   5 
   6 class mainWindow(QtGui.QWidget):
   7     def __init__(self, parent=None):
   8         QtGui.QWidget.__init__(self, parent)
   9 
  10         self.setWindowTitle('PyQt4 example')
  11         self.helloButton = QtGui.QPushButton(self.tr("&Hello"))
  12         self.closeButton = QtGui.QPushButton(self.tr("&Close"))
  13         vbox = QtGui.QVBoxLayout()
  14         vbox.addWidget(self.helloButton)
  15         vbox.addWidget(self.closeButton)
  16         self.setLayout(vbox)
  17         self.resize(250, 150)
  18 
  19         self.connect(self.helloButton, QtCore.SIGNAL("clicked()"), self.helloClicked)
  20         self.connect(self.closeButton, QtCore.SIGNAL("clicked()"), QtCore.SLOT('close()'))
  21 
  22     def helloClicked(self):
  23         QtGui.QMessageBox.information(self, self.windowTitle(), 'Hello, World!')
  24         
  25 if __name__=="__main__":
  26         app = QtGui.QApplication(sys.argv)
  27         window = mainWindow()
  28         window.show()
  29         sys.exit(app.exec_())

pyqt4-example.png

См. также

* Введение в среду PyQt4

Пакеты/GUI/PyQt (последним исправлял пользователь AleksandrSemka 2010-06-14 14:05:49)