Мар 11

Каждый разработчик, знакомый с Qt, знает об используемом в этой библиотеке паттерне сигналов и слотов. Традиционно синтаксис соединения сигналов и слотов в PyQt и PyKDE выглядел очень похоже на аналогичный синтаксис в C++:

from PyQt4 import QtCore
from PyQt4 import QtGui
from PyKDE4 import kdeui

class MyGUI(QtGui.QWidget):

    def __init__(self, parent=None):
        super(MyGUI, self).__init__(parent)
        self.pushbutton = kdeui.KPushButton()
        self.pushbutton.setText("Push me!")

        QObject.connect(self.pushbutton, QtCore.SIGNAL("clicked()"),
                               self.button_pushed)

    def button_pushed(self):
        print "Button clicked"

Однако в PyQt 4.5 была добавлена поддержка нового стиля соединений:

from PyQt4 import QtCore
from PyQt4 import QtGui
from PyKDE4 import kdeui

class MyGUI(QtGui.QWidget):

    def __init__(self, parent=None):
        super(MyGUI, self).__init__(parent)
        self.pushbutton = kdeui.KPushButton()
        self.pushbutton.setText("Push me!")
        # New style
        self.pushbutton.clicked.connect(self.button_pushed)

    def button_pushed(self):
        print "Button clicked"

Будучи основанной на PyQt4, PyKDE4 также теперь поддерживает этот синтаксис. Как видите, код таких соединений выглядит гораздо компактнее и выразительнее, и более «по-питоновски». Кроме того, если раньше было трудно отследить возможные ошибки, допустив опечатку в названии сигнала или слота, то теперь любая опечатка вызовет исключение AttributeError.

Подробнее использование нового стиля описано в документации к PyQt.

Обратите внимание: если вы решили перейти с PyQt на PySide, то этот синтаксис вам пока ещё не доступен. Тем не менее, разработчики PySide планируют исправить это в будущих версиях библиотеки. Детали реализации нового стиля сигналов и слотов в PySide описаны в этом документе.

Фев 23

На Хабрахабре появился туториал Пишем полезную программу для KDE4 на питоне за два часа: рассматривается создание простой утилиты с использованием PyKDE4.

Также Аарон Сейго анонсировал среду PlasMate, которая позволит упростить и автоматизировать процесс создания плазмоидов и DataEngine’ов. Вам не придётся заботиться о ручном заполнении метаданных или упаковке плазмоида, кроме того, во время работы над кодом вы будете видеть «живое» превью плазмоида. Необходимая документация и туториалы будут интегрированы в пакет. Зарелизить PlasMate планируется с выходом KDE 4.3.

Янв 27

На хабрахабре выложено руководство по написанию плазмоидов на Python’е. Нужно ли к этому ещё что-то добавлять?

Окт 14

Сейчас практически все плазмоиды пишутся на C++, однако в своё время нам обещали возможноть использовать любые скриптовые языки. К выходу KDE 4.1 была добавлена базовая поддержка плазмоидов на JavaScript, а сейчас ведётся работа над полной поддержкой JavaScript для написания плазмоидов, DataEngine’ов и Runner’ов.

Кроме того, вчера в SVN была добавлена базовая поддержка плазмоидов и DataEngine’ов на Python. В ближайшее время на TechBase могут появиться руководства по их написанию.

Окт 13

На KDE TechBase появилось руководство по использованию PyKDE на примере создания простого браузера на основе QWebKit.

Фев 20

На хабре выложен небольшой туториал по программированию на Python с использованием библиотеки PyKDE4. Сначала даётся пример простого «Hello, World»‘а, в котором тем не менее показаны приёмы использования ki18n, затем объясняется работа с виджетами и менеджерами расположения, а также демонстрируются возможности KParts.

PyKDE4 входит в состав пакета kdebindings, который, судя по комментариям к этой заметке, сломан в SVN уже неделю. Если заглянуть на KDE build state, то видно, что последняя рабочая ревизия — r755647

Фев 04

На LOR пишут, что вышла новая версия IDE, в первую очередь предназначенной для программистов под PyQt4