Различия между версиями 4 и 5
Версия 4 от 2010-05-30 17:31:33
Размер: 2751
Редактор: alafin
Комментарий:
Версия 5 от 2010-06-01 08:52:47
Размер: 3835
Редактор: alexandris
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 21: Строка 21:

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

{{{#!highlight python
#!/usr/bin/python

import sys
from PyQt4 import QtGui, QtCore
import threading
import time

class mainWindow(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)

        self.setWindowTitle('PyQt4 example')
        self.helloButton = QtGui.QPushButton(self.tr("&Hello"))
        self.closeButton = QtGui.QPushButton(self.tr("&Close"))
        vbox = QtGui.QVBoxLayout()
        vbox.addWidget(self.helloButton)
        vbox.addWidget(self.closeButton)
        self.setLayout(vbox)
        self.resize(250, 150)

        self.connect(self.helloButton, QtCore.SIGNAL("clicked()"), self.helloClicked)
        self.connect(self.closeButton, QtCore.SIGNAL("clicked()"), QtCore.SLOT('close()'))

    def helloClicked(self):
        QtGui.QMessageBox.information(self, self.windowTitle(), 'Hello, World!')
 
if __name__=="__main__":
 app = QtGui.QApplication(sys.argv)
 window = mainWindow()
 window.show()
 sys.exit(app.exec_())
}}}

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 функций и методов, включая:

  • Существующий набор виджетов графического интерфейса;
  • стили виджетов;
  • доступ к базам данных с помощью SQL (ODBC, MySQL, PostgreSQL, Oracle);
  • QScintilla, основанный на Scintilla виджет текстового редактора;
  • поддержку интернационализации (i18n);
  • парсер XML;
  • поддержку SVG;
  • интеграцию с WebKit, движком рендеринга HTML;

  • поддержку воспроизведения видео и аудио.

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 import threading
   6 import time
   7 
   8 class mainWindow(QtGui.QWidget):
   9     def __init__(self, parent=None):
  10         QtGui.QWidget.__init__(self, parent)
  11 
  12         self.setWindowTitle('PyQt4 example')
  13         self.helloButton = QtGui.QPushButton(self.tr("&Hello"))
  14         self.closeButton = QtGui.QPushButton(self.tr("&Close"))
  15         vbox = QtGui.QVBoxLayout()
  16         vbox.addWidget(self.helloButton)
  17         vbox.addWidget(self.closeButton)
  18         self.setLayout(vbox)
  19         self.resize(250, 150)
  20 
  21         self.connect(self.helloButton, QtCore.SIGNAL("clicked()"), self.helloClicked)
  22         self.connect(self.closeButton, QtCore.SIGNAL("clicked()"), QtCore.SLOT('close()'))
  23 
  24     def helloClicked(self):
  25         QtGui.QMessageBox.information(self, self.windowTitle(), 'Hello, World!')
  26         
  27 if __name__=="__main__":
  28         app = QtGui.QApplication(sys.argv)
  29         window = mainWindow()
  30         window.show()
  31         sys.exit(app.exec_())

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