Размер: 3835
Комментарий:
|
Размер: 3871
Комментарий:
|
Удаления помечены так. | Добавления помечены так. |
Строка 57: | Строка 57: |
{{attachment:pyqt4-example.png}} |
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_())