Pull to refresh

PyQt4 — Введение

Python *
Translation
Python
PyQt4 это тулкит для разработки GUI приложений. Он представляет из себя смесь языка программирование Пайтон (Питон) и библиотеки Qt. Qt – одна из наиболее мощных библиотек на этой планете. Если не самая мощная. Официальный сайт PyQt www.riverbankcomputing.co.uk разработан Филом Томпсоном.
PyQt4 представляет из себя набор модулей Пайтон. Она содержит более 300 классов и почти 6000 функций и методов. Это мультиплатформенный тулкит. Он работает на всех основных операционных системах, включая Unix, Windows и MacOS.
Начиная с версии PyQt4 GPL доступна для всех поддерживаемых платформ.
Читать дальше →
Total votes 1: ↑1 and ↓0 +1
Views 91K
Comments 29

PyQt4 — Меню и панели инструментов

Python *
Translation
Главное окно
Класс QMainWindow представляет собой главное окно приложения. С его помощью можно создавать классический вид со строкой состояния, панелями инструментов и меню.

Строка состояния
Строка состояния это виджет, который используется для отображения статусной информации.
#!/usr/bin/python

import sys
from PyQt4 import QtGui

class MainWindow(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)

        self.resize(250, 150)
        self.setWindowTitle('statusbar')

        self.statusBar().showMessage('Ready')

app = QtGui.QApplication(sys.argv)
main = MainWindow()
main.show()
sys.exit(app.exec_())

Читать дальше →
Total votes 34: ↑32 and ↓2 +30
Views 18K
Comments 10

PyQt4 — Управление расположением виджетов

Python *
Translation
Важной частью программирования является управление расположением элементов. Управление расположением это то, как мы размещаем виджеты на форме. Тут есть два пути: использование абсолютного позиционирования (absolute positioning) или же использование классов расположения (layout classes).
Читать дальше →
Total votes 1: ↑1 and ↓0 +1
Views 29K
Comments 14

PyQt4 — Сигналы и события

Python *
Translation
События
События это важная часть GUI программирования. События генерируются пользователями или же системой. Когда мы вызываем метод exec() приложение запускает основной цикл. Он получаем события и отправляет их объектам. Trolltech представляет уникальный механизм сигналов и слотов.
Читать дальше →
Total votes 1: ↑1 and ↓0 +1
Views 28K
Comments 8

uRSSus — для тех кто еще не нашел удобную RSS-читалку

Configuring Linux *
Уже около полугода полностью живу в Убунте. За это время перепробовал много всевозможного софта из разных предметных областей в поисках своего идеала. Блягодаря хабру узнал про очень удобную аську qutIM (хабратопик номер раз, хабратопик номер ++раз). Но вот с RSS-читалкой все как-то не складывалось. Перепробовал несколько из репозитория убунты, устанавливал парочку сторонних, но во всех что-то не страивало (под виндой жил с FeedReader и был вполне себе счастлив). Под Убунтой же до недавнего времени пользовался Akregator, но по некоторым показателям он меня не особо устраивал.

Около месяца назад узнал про проект uRSSus, попробовал, на нем и остался.

Проект поддерживает как многие фичи современных RSS-читалок, так и парочку уникальных (по крайней мере уникальных для меня):
Читать дальше →
Total votes 13: ↑8 and ↓5 +3
Views 824
Comments 20

Программирование на PyQt4. Часть 1

Qt *
Данный цикл статей является работой одного очень креативного и умного человека с ником Liksys. Благодаря хорошим людям он получил инвайт и продолжение этого цикла статей будет безусловно! ;)

image

Часть №1


       Когда люди говорят о Qt, многим из нас сразу вспоминается KDE с его обилием настроек. Программисты следом представляют исходники, написанные на C++ с весьма изящным подходом к решению проблемы. И это вполне оправданно: KDE — это, пожалуй, самый известный Qt-проект, а сама Qt написана на C++ и предназначена в первую очередь именно для него. За долгое время существования этого инструментария он стал своеобразным стандартом в Linux для написания графических приложений наряду с GTK, wxWidgets и т.д. Мощь языка C++ дала возможность создать много отличных программ, а стиль Qt является образцом для подражания многих программистов.
А о чём тогда разговор?
Total votes 70: ↑64 and ↓6 +58
Views 18K
Comments 32

Программирование на PyQt4. Часть 2

Qt *
Благодаря хорошим людям автор этого цикла статей получил инвайт и все последующие статьи будут опубликоваться им, поэтому не присваивайте эту работу мне. Я просто его друг. ;)
image
Читать 2-ую часть
Total votes 55: ↑52 and ↓3 +49
Views 11K
Comments 53

Ribbon? Это просто! или Работаем с каскадными таблицами стилей (CSS) в Qt

Qt *
Некоторое время назад в одном из обсуждений я упомянул о том, что контрол «a-la ribbon» (который был использован в MS Office 2007 для организации меню) легко и непринуждённо реализуется средствами Qt.

Я не хочу спорить о том, удобен ribbon или нет (сам я больше склоняюсь ко второму мнению). Но на его примере можно отлично раскрыть возможности каскадных таблиц стилей для Qt (которые были представлены в Qt 4.2), чем я и займусь. Сразу прошу прощения: я не дизайнер, поэтому с точки зрения эстетики мой QRibbon скорее всего не дотянет до своего собрата от МС, но дизайнеры в МС, полагаю, в своей области превосходят меня на 2 головы, да и человеко-часов, думаю, там было затрачено в слегка побольше. Я же всего лишь демонстрирую общий принцип и базовые возможности.

Так как я сейчас изучаю язык Python, то для демонстрации был выбран именно он, но для C++ всё делается абсолютно так же. Заранее прошу прощения: Python я только-только изучаю, поэтому код может быть полон корявостей, так что прошу больно не пинать :)

Итак, начнём!
Читать дальше →
Total votes 75: ↑71 and ↓4 +67
Views 21K
Comments 43

PyQt4 — Диалоговые окна

Python *
Translation
В PyQt4 есть два вида диалогов: предопределенные и пользовательские.

Предопределенные диалоги


QInputDialog

QInputDialog представляет простой диалог для получения единственного значения от пользователя. Значение может быть строкой, числом или пунктом из списка.
Читать дальше →
Total votes 30: ↑28 and ↓2 +26
Views 25K
Comments 4

Взлом каптчи файлообменника

Artificial Intelligence

Введение



В данной статье коротко рассказывается о процессе взлома captcha с ifolder.ru. Применение в процессе языка Python и сторонних библиотек. Применение алгоритма преобразований Хафа в составе библиотеки Open Computer Vision © Intel позволит нам избавиться от шума на изображении, простая в использовании и быстрая библиотека FANN (Fast Artificial Neural Network) сделает возможным применение искусственной нейронной сети для задачи распознавания образа.

Моя мотивация состояла, прежде всего, в том, чтобы попробовать язык Python. Как известно, лучший способ изучить язык — решить на нём какую-нибудь прикладную задачу. Поэтому параллельно описанию процесса обработки изображения я буду рассказывать о том, какие библиотеки и для чего я использовал.
Сломать мозг
Total votes 183: ↑178 and ↓5 +173
Views 28K
Comments 68

Пример разработки небольшого python+PyQt4 приложения для учетной системы

Python *
Часто приходится разрабатывать приложения для корпоративной системы которые должны были функционировать еще вчера, не требующие строго соответствия корпоративным стандартам. Такими приложениями могут представлять cms к сайтам, gui для сервисов под *nix системы просто приложением учетной системы. Разработка приложений подобного рода на скриптовых языках есть тема! обычно оптимальна с точки зрения скорости выполнения. Под катом пример реализации приложения на python+PyQt4, функции приложения парсинг и загрузка данных из xls файлов…
Читать дальше →
Total votes 29: ↑26 and ↓3 +23
Views 14K
Comments 24

Разговариваем про PyQt4 — Посиделка первая

Python *
image

Небольшое вступление


    Собственно, тогда, давно, я решил попробовать Qt, потому что часто слышал об удобстве разработки под него и своими глазами видел, какая шикарная документация представлена на сайте производителя. Не могу сказать, что это далось легко (я раньше немного писал на GTK), особенно путался в этих бесконечных классах на "Q", но постепенно начало нравиться все больше и больше. В частности потому, что есть отличная привязка к нему для языка Python, на котором я, собственно, в основном и пишу.
    Еще почему? Ну, я мог бы рассказать и о том, что он работает как на почти всех настольных системах, так и на многих мобильных, рассказать про совершенно гениальную объектную систему виджетов и т. п. Но — зачем? Не люблю холивары с приверженцами других визуальных библиотек :) Поэтому давайте считать этот топик чем-то вроде дележки опытом и рассуждений на тему.
Присоединиться к посиделке
Total votes 73: ↑67 and ↓6 +61
Views 27K
Comments 28

Разговариваем про PyQt4 — Посиделка вторая

Python *
image

Добро пожаловать!


    В прошлый раз мы обсуждали, как можно писать свое PyQt4-приложение, опираясь на логику сгенерированного программкой pyuic4 файла. Как это часто бывает — после написания топик получил много интересных и, что самое главное, содержательных комментариев, объясняющих, почему в отдельных случаях я прав, а в других неправ.
    Самое любопытное состоит еще и в том, что обсуждение интересно как для питонистов, так и для приверженцев C++, ибо в данном случае разница невелика, в основном только незначительные вещи в синтаксисе. Все это потому, что PyQt4, по своей сути, является простой оберткой вокруг сишных Qt-классов, сохраняющей все названия и методы. Итак, вот вам чашечка чая или кофе, устраивайтесь поудобнее, давайте начнем нашу беседу.
Заглянуть на огонек
Total votes 47: ↑41 and ↓6 +35
Views 6.1K
Comments 18

Python, Qt и немного кроссплатформенности

Lumber room
image
Представляю вашему вниманию небольшую выдержку из моей курсовой работы (точнее это учебно-ознакомительная практика).
Опуская множество ненужной на Хабре теоретической воды, продемонстрирую на некотором достаточно синтетическом примере, как перенести маленькую программулину с Linux на Windows.
Замечу, это не инструкция и не в коей мере на нее не претендует. Это небольшой обзор процесса, чтобы показать как обстоят дела.
Читать дальше →
Total votes 21: ↑18 and ↓3 +15
Views 2.3K
Comments 14

Пишем игру Реверси на Python + PyQt4

Python *
Задали нам как-то написать небольшой проект — игру Реверси.
А так как сейчас я изучаю Python, решил писать на нем. Вместе с графической библиотекой PyQt4.
Ну так за чем же дело встало? Создаем SVN и вперед! (Переехали на Github)

Вот такое чудо у меня получилось:
Скриншот игры
Читать дальше
Total votes 73: ↑68 and ↓5 +63
Views 15K
Comments 35

Программирование под N900 на Python

Python *
Sandbox
Среди топиков на Хабре я нашел лишь руководство по программированию на Python для платформы S60. Являясь счастливым обладателем N900 и фанатом Python я решил это исправить.
Читать дальше →
Total votes 43: ↑34 and ↓9 +25
Views 3.9K
Comments 11

PyQt4 и QML

Python *
Sandbox
Совсем недавно, разработчики фреймворка Qt Software, обрадовали нас появлением GUI, альтернативного стандартному, со своим, довольно несложным, языком разметки — QML.
Связкой QML с основной программой является модуль Qt Declarative. Начиная с версии 4.7 — PyQt4 поддерживает этот модуль.
QML значительно проще и гибче основного GUI, помимо того является и языком программирования, так как позволяет писать функции на javascript. В то время как Python довольно простой и гибкий интерпретируемый язык.

далее...
Total votes 48: ↑45 and ↓3 +42
Views 12K
Comments 16

Настраиваем окружение на Mac OS и собираем автономное приложение с PySide/PyQt

Python *
image
Сейчас все удобнее становится использовать HTML и JavaScript в интерфейсах приложений. И именно такая задача недавно появилась передо мной, с одним важным условием — на выходе должно быть полностью standalone приложение, не требующее установки дополнительных библиотек и способное запуститься в обычном пользовательском окружения.

В силу своего природного обаяния в качестве основного языка был выбран Python + PySide c WebKit на борту, для сборки app-бандла использовался py2app.

Проблемы появились, при первой же попытке запустить приложение на чистой системе — обнаружилось большое количество внешних зависимостей, которые py2app не смог самостоятельно разрешить. Под катом пошаговая инструкция как эта проблема была решена.
Читать дальше →
Total votes 42: ↑40 and ↓2 +38
Views 25K
Comments 18

PyQt: простая работа с потоками

Python *
Sandbox
Очень часто в программах приходится использовать многопоточность. Иногда это монстрообразные пулы потоков со сложным взаимодействием, но гораздо чаще это бывает простой код, главное требование к которому — не замораживать интерфейс.

Читать дальше →
Total votes 24: ↑23 and ↓1 +22
Views 22K
Comments 5

Генерим PDF бочками

Python *

Предыстория


На хабре неоднократно упоминались различные инструменты и способы создания скриншотов WEB страниц.

Хочу поделиться собственным «велосипедом» для создания PDF на Python и QT, дополненным и улучшенным для централизованного использования несколькими проектами.

Изначально генерация запускалась из PHP скрипта, примерно так:

<?php
// локальный файл
exec('xvfb-run python2 html2pdf.py file:///tmp/in.html /tmp/out.pdf');
// или URL
exec('xvfb-run python2 html2pdf.py http://habrahabr.ru /tmp/habr.pdf');
?>

этого было достаточно и все было хорошо…
Читать дальше →
Total votes 41: ↑37 and ↓4 +33
Views 12K
Comments 18
1