Уведомления

Группа в Telegram: @pythonsu

Уведомления

  • Found 3484 posts.

Python для новичков » Метаданные различных файлов » Апрель 17, 2010 15:24:10

Есть желание организовывать файлы по метаданным (напр по тэгам в mp3). Соответственно вопрос: какие готовые решения (библиотеки, м.б. примеры) есть для чтения/записи этих самых метаданных для основных форматов файлов. Желательно, чтобы оно было в pure Python.

Python для новичков » Отключение буферизации stdout » Апрель 17, 2010 01:58:07

Такая проблема. Запускаю интерпретатор в винде командой python -u (PYTHONUNBUFFERED тоже пробовал), после этого на каждую команду, даже 1+2 он выдает SyntaxError: invalid syntax. Почему?

Python для новичков » не могу найти документацию на SciPyLUType » Апрель 15, 2010 13:23:34

Доброго дня уважаемые

возникал такая проблема
в доках на scipy.sparse.linalg.dsolve.splu
написано что на возвращает результат в виде класса типа scipy.sparse.linalg.dsolve._superlu.SciPyLUType
мне надо из него вытащить значения главных диагоналей полученных матриц что бы посчитать определитель но
ни каких док на SciPyLUType я не нашел

или подскажите как еще можно посчитать определитель сильно разреженной матрицы

Заранее благодарю

Флейм » Нужны разработчики » Апрель 15, 2010 10:40:57

Разработчики – самые дефицитные специалисты в стартапах. Поэтому на новом Harvest (РИФ+КИБ edition) мы создали вам особые условия.

Harvest (РИФ+КИБ edition) – стартап-турнир, на котором за 2 дня можно успеть то, что не получалось доделать месяцами. Победившая команда получит полностью оплаченную поездку на учёбу в летней бизнес-школе Ignite в Кембридже (Англия).

17-18 апреля пройдёт отборочный турнир для стартапов любой степени готовности: от задумки, презентуемой впервые, до развитого проекта, которому не хватает рук. Как советует Ричард Брэнсон «К черту все! Берись и делай!»

Участники выберут лучшие идеи, представленные в формате elevator-питчей, разобьются на команды и при поддержке экспертов проработают концепцию и бизнес-модель, создадут прототип и инвестиционный тизер.

В рамках турнира руководитель агентства GreePR Дамир Халилов проведёт
авторский семинар, серийный предприниматель и венчурный инвестор Глеб
Каплун расскажет о “бутстреппинге”, а Константин Кичинский из Microsoft
расскажет о новых технологиях корпорации.

Выходные – лучшее время, чтобы поработать над проектом собственного бизнеса. Или найти проект, к которому захочется присоединиться. Harvest – это площадка, на которой можно “и себя показать, и других посмотреть”: найти единомышленников, бизнес-партнёров, обменяться контактами с будущими заказчиками или потенциальным боссом.

Финалиста определят 23 апреля на Объединенной конференции РИФ+КИБ 2010. Чтобы пройти в финал, нужно сделать summary готового проекта на английском. А затем пройти телефонное интервью с представителем Кембриджского университета. Знание языка очень пригодится.

Второй приз — участие в любой образовательной программе Start in Garage на ваш выбор.

Подробная информация и регистрация участников на сайте стартап-турнира: http://harvest.greenfield-project.ru/
Цена участия для разработчика составит всего 600 р. Снизить её еще на 20% можно, оплатив через интернет.

Тем, кто зарегистрировался, достаточно приехать 17 апреля с ноутбуком, знаниями и опытом в МФПА на “Семёновской” (100 м. от метро). Остальное – интернет, питание, аудитории и интересных экспертов – обеспечит команда организаторов.

Django » Django - автоматическая установка » Апрель 14, 2010 15:13:24

Приветствую!
На http://softwaremaniacs.org/forum/django/20449/?page=last#115406 было обсуждение, требуется ли автоматическая установка Django и как это сделать, если есть интерес - можно ознакомиться/протестировать.
Сейчас ставится Django + Python + подключение к MySQL/PostgreSQL + админка (рус).
Рады будем услышать мнения - надо оно вообще и может быть стоит добавить опции и возможности.

Флейм » Python программист Казань » Апрель 14, 2010 14:08:18

Для развития Медийного портала требуется Python программист.

На текущий момент необходимо решить 2 горящие задачи:

1. Авторизация по OpenID
2. Разработать биллинг и подключить к нему интерфейс Робокассы.

Бюджет от 7500 р.
Сроки до 25 апреля.

При качественном исполнении заказа возможно долгосрочное сотрудничество.

Обязательные требования:
1. Опыт программирования Python фреймворк Django.
2. Пунктуальность.
3. Дисциплинированность.

Контактная почта: shepotatyev@cg.ru
тел.: +7(843)5338800 доб. 3226
тел.: +7(843)5338832

GUI » QUdpSocket и русский язык » Апрель 13, 2010 11:38:01

Есть серверное приложение.
Получаем текст на русском языке, тип QString.
Отправляем его по протоколу UDP клиенту:


udpSocket.writeDatagram(text, hostname, 8002)


На клиентской стороне принимаем:

text, hostname, portn = udpSocket.readDatagram(udpSocket.pendingDatagramSize())
type(text) - <type ‘str’>

В полученном тексте русские слова отображаются так: ?????

Подскажите как с этим бороться?

Python для новичков » pil и прочие модули в CGI... » Апрель 12, 2010 21:21:35

Всем привет.. Проблема такая:
Пишу скрипт (точнее уже написал)
Теперь хочу его запускать через CGI на хосте… Скрипт использует модуль PIL (который, как известно, подгружается отдельно). Куда (и что?!) подгружать, и как прописывать код?.. Была мысль как-то запускать из ZIP'а, но этот вариант по-идее не возможен.


p.s. Так же возможно будут ещё подобные скрипты, и хочется найти какой-то универсальный вариант для всех

Django » [Django testing] Data Provider - передача параметров тестовой функции » Апрель 12, 2010 17:40:09

имеется настроенная (не мной) django-nose система тестирования

Мне нужно выполнить один и тот же тест с разным набором параметров (напр. имена файлов)

для PHPUnit есть:

http://www.phpunit.de/manual/current/en/writing-tests-for-phpunit.html#writing-tests-for-phpunit.data-providers

для передачи параметризованному тесту значений из функции.

а как это реализовать для Django/Python

Python для новичков » ОШИБКА С matplotlib-0.99.1 » Апрель 10, 2010 19:22:51

установелено python-2.6.2.msi
установлено numpy-1.3.0-win32-superpack-python2.6.exe
установлено matplotlib-0.99.1.win32-py2.6.exe
установлено PyQt-Py2.6-gpl-4.7-1.exe

в чем ошибка
“import matplotlib.pyplot as plt”
либо
“from matplotlib import pyplot”
не могу импортировать pyplot выдает ошибку винди “ отпарвлять отчет или не отправлять отчет ” на файл pythonw.exe http://us.ua/12311/
если убрать pyplot попробывать импортировать чтото другое все нормально работает!

пробывал ставил разные питоны 2.6- 2.6.5 не помогло
ставил разные matplotlib не помогло
ставил разние numpy
даже винду переустановил не помогло
обидно на другиг компах все отлично работает на разных версиях питона

подскажите что делать надо срочно(

Базы данных » как установить pygresql? » Апрель 10, 2010 08:19:13

когда устанавливаю его, если через бинарные файлы, то после установки нехватает модуля, ошибка
когда устанавливаю через соурс, то нехватает pg_config tool
устанавливаю на windows

такая проблема как и у них
http://www.python-forum.org/pythonforum/viewtopic.php?f=1&t=10554
только решения не дали

Django » Вопрос по правильной организации » Апрель 8, 2010 11:52:05

Есть такие модели:
class FreelanceSite(models.Model):
name = models.CharField(max_length=50)
url = models.URLField(unique=True)
description = models.TextField()
rss_feed = models.URLField(unique=True)
favicon = models.ImageField(upload_to='favicons/')

def __unicode__(self):
return self.name

class SiteCategory(models.Model):
freelance_site = models.ForeignKey(FreelanceSite)
site_category = models.CharField(max_length=70)

def __unicode__(self):
return self.site_category

#пример модели
class UsersCategory(models.Model):
user = models.ForeignKey(User)
categories = models.ManyToManyField(SiteCategory)

def get_absolute_url(self):
return "/users_category/%i/" % self.id

def __unicode__(self):
return self.user.username
Нужно позволить пользователю настраивать свои категории. Например, чтобы форма настройки выглядела таким образом:

Подскажите, как правильно это всё организовать?

GUI » как обрабатывать SIGTERM в PyQt приложении » Апрель 7, 2010 13:09:36

Есть некоторый код, надо по своему обрабатывать сигнал SIGTERM, который посылается по умолчанию командой kill
Как правильно установить обработчик?
В коде ниже обработчики не работают =(.

#!/usr/bin/python
# -*- coding: utf-8 -*-
# Python 2.5.2, debian
import sys
from PyQt4 import QtGui
import signal

class mainWindow(QtGui.QWidget):
def __init__(self,*args):
QtGui.QWidget.__init__(self,*args)
self.setWindowTitle(u'test')
#signal.signal(signal.SIGTERM, self.test)
def test(self,*args):
self.setWindowTitle(u'hi!')
def test(*arg):
print 'hi'
if __name__=="__main__":
signal.signal(signal.SIGTERM, test)
app = QtGui.QApplication(sys.argv)
window = mainWindow()
window.show()
sys.exit(app.exec_())

GUI » И красиво, и проблемно. Сложности при использовании PyGTK » Март 30, 2010 17:33:43

Всем привет! Вообще у меня вопрос охватывает сразу несколько подфорумов и GUI, и работа с базами данных, и работа с ГИС(GIS). Но GUI доставляет большую сложность

Я пишу диплом на тему оценки окружающей среды с использованием GIS. Для этого было написано пару скриптов на Python, которые последовательно подготавливали данные для получения необходимого результата. В первоначальном варианте я их просто последовательно запускал из панели ArcToolBox. Но со временем возникла необходимость создания единого пользовательского интерфейса. Для этих целей я его написал на PyGTK и уже от туда запускаю скрипты(теперь они в одном файле к часть одного класса).
Но возникла проблема, скрипт который работал раньше при запуске из панели ArcToolBox, теперь не хочет этого делать. Мне кажется, что это связано при запуске нового скрипта фокус передается на интерфейс написанный на PyGTK, а раньше был на ArcMap. Кто-нибудь сталкивался с такой проблемой раньше, или может быть объясните почему действительно это происходит? Если действительно из-за потерей связей, то как мне передавать фокус на мое приложение?

Здесь лежит мой скрипт.
Ссылка на скрипт, файл glade, и 2 картиночки

А это так строчка (187) которая не хочет запускаться
gp.Intersect_analysis("Air #;Finzal_Big_razrez", Air_sel, "ALL","#", "POINT")
А вот строчка из за которой я думаю это происходит.
gtk.main()
- передает фокус на созданный интерфейс( как мне кажется )!

А вот полный текст скрипта:
#!/usr/bin/env python
# coding: utf-8
# Тут я импортирую все необходимые мне библиотеки
import sys
import threading
import os
try:
import pygtk
#tell pyGTK, if possible, that we want GTKv2
pygtk.require("2.0")
except:
#Some distributions come with GTK2, but not pyGTK
pass

try:
import gtk
import gtk.glade
except:
print "You need to install pyGTK or GTKv2 ",
print "or set your PYTHONPATH correctly."
print "try: export PYTHONPATH=",
print "/usr/local/lib/python2.2/site-packages/"
sys.exit(1)
# Импортирование нужных библиотек для ArcGIS
import string, arcgisscripting
gp = arcgisscripting.create()
# Необходимо для подключения к MS Access
import win32com.client
t = 0
s = os.path.abspath(os.curdir)
# Это была попытки в управлении потоками, но я в ней так особо и не понял.
# Идея была заблочить поток для GUI, и передать на работу с ГИС
class T(threading.Thread):
def __init__(self, n):
threading.Thread.__init__(self, name="t" + n)
self.n = n
def run(self):
print "Процесс", self.n

# Создание интерфейса и необходимых действий
class App():

def __init__(self):


# Загружаем файл интерфейса
self.gladefile = "Compl_.glade"
# дерево элементов интерфейса
self.widgetsTree = gtk.glade.XML(self.gladefile)
# Соединяем событие закрытия окна с функцией завершения приложения
self.window = self.widgetsTree.get_widget("window1")

if (self.window):
self.window.connect("destroy", self.close_app)
# Словарик, задающий связи событий с функциями-обработчиками
dic = {
"button2_clicked_cb": self.close_app,
"button1_clicked_cb": self.run,
"button3_clicked_cb": self.run_dir,
}
# Магическая команда, соединяющая сигналы с обработчиками
self.widgetsTree.signal_autoconnect(dic)
self.dir = self.widgetsTree.get_widget("window2")
self.dir.connect("delete-event", self.on_delete_event)
# Закрытие всего, не смог здесь понять как сработать с потоками
def close_app(self, widget):
#global p1
gtk.main_quit()
#p1.setDaemon(daemonic)
#quit
# Здесь происходит выбор и запуск соответсвующих частей кода
def run(self, widget):
self.cb1 = self.widgetsTree.get_widget("checkbutton1")
self.cb2 = self.widgetsTree.get_widget("checkbutton2")
self.cb3 = self.widgetsTree.get_widget("checkbutton3")
ch = [0,0,0,0,0]
if self.cb1.get_active() == 1:
ch[0] = 1
print ch
if self.cb2.get_active() == 1:
ch[1] = 1
print ch
if self.cb3.get_active() == 1:
ch[2] = 1
print ch
if self.cb4.get_active() == 1:
ch[3] = 1
print ch
if self.cb5.get_active() == 1:
ch[4] = 1
print ch
if ch[0] == 1:
self.source()
#os.startfile("D:/Gis/Compl/Scripts/MakeSource.py")
if ch[1] == 1:
self.clear_layer()
#os.startfile("D:/Gis/Compl/Scripts/clear_layer.py")
if ch[2] == 1:
self.intersect()
#os.startfile("D:/Gis/Compl/Scripts/Intersect.py")
if ch[3] == 1:
self.run_sql()
#os.startfile("D:/Gis/Compl/Scripts/Intersect.py")
# gtk.main_quit()
if ch[4] == 1:
self.color()
# Не совсем знаю для чего это надо, но оно не убивает мое второе всплывающее окно а прячет!
def on_delete_event(self, widget, event):
return self.dir.hide()

# ввод в поле редактирования пути к базе данных
def source(self):
self.entry = self.widgetsTree.get_widget("entry1")
self.entry.set_text("D:\Gis")
self.dir.show()
# Я храню путь к геобазе данных в текстовом файле, и здесь я его записываю в первый раз
# Дальше только считываю
def run_dir(self, widget):
s1 = self.entry.get_text()
print s1
# Заносим путь в Source.txt находящийся в тойже папке где и исполняемый скрипт
#raw_input()
f = file(s1+"/Compl/Scripts/Source.txt","w")
f.write(str(s1))
f.close()
self.dir.hide()
# Здесь происходит очитска слоев от результатов работы, эта часть работает без проблем!!!
def clear_layer(self):
gp.overwriteoutput = 1
# Считывание пути к базе данных из файла Source.txt
# s - путь к исполняемуму скрипту
print s

# Для запуска скрипта не из ArcGIS /Scripts/ необходимо убрать
f = file(s+"\\Source.txt","r")
#gp.addmessage(s)
a = f.read()
print a
#gp.addmessage(a)
# Указание рабочей области
gp.Workspace = a+"/WaterAirGB/WAGB.mdb/"
# Путь к таблице с которой будем работать
link_wst = a + "/WaterAirGB/WAGB.mdb/Finzal_Big_razrez"
# Работа на изменение таблицы
rows1 = gp.updatecursor(link_wst)
# Сбрасываем расположение курсора
rows1.reset()
# Первая строчка таблицы (следующая)
this_rows1 = rows1.next()
# Обнуление столбца grad в таблице
while this_rows1:
this_rows1.grad = 0
# gp.AddMessage(f(0))
rows1.UpdateRow(this_rows1)
this_rows1 = rows1.next()
gp.ResetEnvironments()
"""Эта та самая часть которая у меня перестала работать. Эта же часть работает отлично, вне интерфейса. Суть
ее заключается в том, что находит пересечение слоя полигонов Finzal_Big_razrez со слоем точеченых объектов Air. И та часть которая попадает в выделенную область
заносится в новый выходной слой Air_sel. Инструмент Intersect_analysis находил в работающей среде ArcMap
выбранный полигон и находил его пересечение с точенчным слоем. Результат - новый слой.

"""
def intersect(self):
gp.AddToolbox("C:/Program Files/ArcGIS/ArcToolbox/Toolboxes/Analysis Tools.tbx")
gp.ResetEnvironments()
gp.overwriteoutput = 1

# Считываем путь к базе геоданных
print s+" - intersect"
# Для запуска скрипта не из ArcGIS /Scripts/ необходимо убрать
f = file(s+"\\Source.txt","r")
gp.addmessage(s+" - absolute dir")
a = f.read()
print a+" - intersect"
gp.addmessage(a+" - to folder GIS")
gp.Workspace = a+"\\WaterAirGB\\WAGB.mdb\\"
self.GP.Workspace = a+"\\WaterAirGB\\WAGB.mdb\\"
# Устанавливаем пути к рабочим слоям
Air_sel = a+"\\WaterAirGB\\WAGB.mdb\\Air_sel"
#Air_sel = "D:\\Gis\\WaterAirGB\\WAGB.mdb\\Air_sel"
Finzal_Big_razrez = "Finzal_Big_razrez"
Air = "Air"
#gp.addmessage(Air_sel)
Pustoi = "Razb_finzal"
Water_sel = a+"\\WaterAirGB\\WAGB.mdb\\Water_sel"
Water = "Water"
#gp.addmessage(Water_sel)
Pustoi__2_ = "Razb_finzal"
Dno_sel = a+"\\WaterAirGB\\WAGB.mdb\\Dno_sel"
Dno = "Dno"
Pustoi__3_ = "Finzal_Big_razrez"
#gp.addmessage(Dno_sel)
try:

# Пересечение со слоев Air
#gp.Intersect_analysis("Air #;Finzal_Big_razrez #", "D:\Gis\WaterAirGB\WAGB.mdb\Air_sel", "ALL", "#", "POINT")
# та самая строчка что не работает
gp.Intersect_analysis("Air #;Finzal_Big_razrez", Air_sel, "ALL","#", "POINT")
# Пересечение со слоев Water
#gp.Intersect_analysis("Water #;Finzal_Big_razrez #", Water_sel, "ALL", "", "POINT")
# Пересечение со слоев Dno
#gp.Intersect_analysis("Dno #;Finzal_Big_razrez #", Dno_sel, "ALL", "", "POINT")
gp.addmessage("Well Done")
print "Well Done"
#raw_input()
except:
gp.addmessage("Ohh, no - it's not work")
print "Ohh, no - it's not work"
#raw_input()
# Эта часть выполняет подключение к MS Access и работаетр хорошо.
def run_sql(self):
# Подключенние через ADODB к Access
conn = win32com.client.Dispatch(r'ADODB.Connection')
f = file(s+"\\Source.txt","r")
a = f.read()
# Создаем подключение к базе WAGB.mdb
DSN = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE='+a+'/WaterAirGB/WAGB.mdb;'
conn.Open(DSN)
# Создаем запросы SQL
clear_air = "DELETE FROM Airconc_sel"
clear_dno = "DELETE FROM Dnoconc_sel"
clear_water = "DELETE FROM Waterconc_sel"
sql_statement_air = "INSERT INTO Airconc_sel SELECT Airconc.* FROM Air_sel LEFT JOIN Airconc ON Air_sel.NUMBER_ = Airconc.NUMBER_;"
sql_statement_dno = "INSERT INTO Dnoconc_sel SELECT Dnoconc.* FROM Dno_sel LEFT JOIN Dnoconc ON Dno_sel.NUMBER_ = Dnoconc.NUMBER_;"
sql_statement_water = "INSERT INTO Waterconc_sel SELECT Waterconc.* FROM Water_sel LEFT JOIN Waterconc ON Water_sel.NUMBER_ = Waterconc.NUMBER_;"
# Выполнение запрсов
conn.Execute(clear_air)
conn.Execute(clear_dno)
conn.Execute(clear_water)
conn.Execute(sql_statement_air)
conn.Execute(sql_statement_dno)
conn.Execute(sql_statement_water)
conn.Close()
# Запуск программы Комплексной оценки
try:
os.startfile("C:/Program Files/Complex/Oleg_ivo.Complex.exe")
except:
print "Не запускается программа Complex"
raw_input()
# Эта часть раскрашивает полученный полигон соответсвующим цветом. Работоспособность еще не проверил.
def color(self):
f = file(s+"/Source.txt","r")
a = f.read()
print a
gp.overwriteoutput = 1
# Считываем данные из таблицы Compl
gp.Workspace = a+"/WaterAirGB/WAGB.mdb"
link_ws = a+"/WaterAirGB/WAGB.mdb/"
link_wst = a+"/WaterAirGB/WAGB.mdb/Compl"
rows = gp.searchcursor(link_wst)
rows.reset()
this_rows = rows.next()
s = []
while this_rows:
s.append(this_rows.getvalue("LLN"))
s.append(this_rows.getvalue("LN"))
s.append(this_rows.getvalue("N"))
s.append(this_rows.getvalue("HN"))
s.append(this_rows.getvalue("HHN"))
this_rows = rows.next()
print s
# Находим максимум и сохраняем в f
RANG = [1,2,3,4,5]
f = [1,s[0]]
for i in range(0,5):
if (s[i] >= f[1]):
f[1] = s[i]
f[0] = RANG[i]
print f
# Находим выбранные объекты через пересчение слоев
gp.Workspace = a+"/WaterAirGB/"
gp.AddToolbox("C:/Program Files/ArcGIS/ArcToolbox/Toolboxes/Analysis Tools.tbx")
Pustoi_Select = a+"/WaterAirGB/WAGB.mdb/Finzal_Big_razrez_s"
Pustoi = "Finzal_Big_razrez"
try:
gp.Select_analysis(Pustoi, Pustoi_Select, "")
except:
gp.Addmessage("Выборка не работает, перезапустите проект Compl.mxd")

# Наход ID выбранных объектов
link_wst = a+"/WaterAirGB/WAGB.mdb/Finzal_Big_razrez"
rows = gp.searchcursor(link_wst)
rows.reset()
this_rows = rows.next()
s = []
while this_rows:
s.append(this_rows.getvalue("ID"))
this_rows = rows.next()
print s
# Раскрашиваем согласно данным в f
link_wst = a+"/WaterAirGB/WAGB.mdb/Finzal_Big_razrez"
rows1 = gp.updatecursor(link_wst)
rows1.reset()
this_rows1 = rows1.next()
rows2 = gp.searchcursor(link_wst)
rows2.reset()
this_rows2 = rows2.next()
while this_rows1:
if (this_rows2.getvalue("ID") in s):
this_rows1.grad = f[0]
rows1.UpdateRow(this_rows1)
this_rows2 = rows2.next()
this_rows1 = rows1.next()
gp.resetenvironments()

if __name__ == "__main__":
#p1 = T(gtk.main())
app = App()
#p1.start()
gtk.main()# Мне кажется из-за этой команды не хочет выполнятся intersect_analysis
Жду ваших советов!=)
P.S. Я не силен в написании скриптов на Python и в програмировании, а привиденный скрипт я хоть и сделал сам, но по образу и подобию чужих наработок. Например, с понятием class я не особо знаком, но понял как работает, и потому стал его использовать! Может это было и излишне!

GUI » Qt 4.7 + pyHook = тормоза при сворачивании, минимизации, закрытии окна » Март 29, 2010 11:27:09

Qt 4.7.2, Python 2.6, Windows XP SP3
При помощи pyHook ловятся события мыши.
Проблема в том, что при нажатии на кнопки сворачивании, минимизации и закрытия окна курсор замирает, кнопка остается в зажатом положении секунды 3-4, потом только происходит соответствующее действие. Если, например, закрывать окно другим способом, то работает нормально.
# -*- coding: utf-8 -*-
import sys
import pyHook

from PyQt4 import QtCore, QtGui
from mainwindow import Ui_MainWindow

class WidgetWithUiAsAttr(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)

def on_mouse_event(event):
form.setWindowTitle('%s x %s' % event.Position)
return True

if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)

form = WidgetWithUiAsAttr()
form.show()

hm = pyHook.HookManager()
hm.MouseMove = on_mouse_event

# включаем перехват движения мыши
form.connect(form.ui.pushButton, QtCore.SIGNAL("clicked()"),
lambda : hm.HookMouse())
# выключаем
form.connect(form.ui.pushButton_2, QtCore.SIGNAL("clicked()"),
lambda : hm.UnhookMouse())
# если закрывать окно так, то работает отлично
form.connect(form.ui.pushButton_3, QtCore.SIGNAL("clicked()"),
lambda : form.close())

app.exec_()
hm.UnhookMouse()
sys.exit()
mainwindow.py:
# -*- coding: utf-8 -*-
from PyQt4 import QtCore, QtGui

class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(432, 254)
MainWindow.setLocale(QtCore.QLocale(QtCore.QLocale.Russian, QtCore.QLocale.RussianFederation))
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtGui.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(10, 10, 201, 101))
self.pushButton.setObjectName("pushButton")
self.pushButton_2 = QtGui.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(230, 10, 191, 101))
self.pushButton_2.setObjectName("pushButton_2")
self.pushButton_3 = QtGui.QPushButton(self.centralwidget)
self.pushButton_3.setGeometry(QtCore.QRect(10, 120, 411, 91))
self.pushButton_3.setObjectName("pushButton_3")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 432, 20))
self.menubar.setObjectName("menubar")
self.menu = QtGui.QMenu(self.menubar)
self.menu.setObjectName("menu")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.menubar.addAction(self.menu.menuAction())

self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)

def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8))
self.pushButton.setText(QtGui.QApplication.translate("MainWindow", "Включить", None, QtGui.QApplication.UnicodeUTF8))
self.pushButton_2.setText(QtGui.QApplication.translate("MainWindow", "Выключить", None, QtGui.QApplication.UnicodeUTF8))
self.pushButton_3.setText(QtGui.QApplication.translate("MainWindow", "Выход", None, QtGui.QApplication.UnicodeUTF8))
self.menu.setTitle(QtGui.QApplication.translate("MainWindow", "Настройки", None, QtGui.QApplication.UnicodeUTF8))

GUI » ToolTip для ячейки » Март 28, 2010 14:12:30

Доброго времени суток, господа!!!

Не подскажите, как сделать ToolTip для ячеек wxGrid? Может, кто-то уже такое делал?

Web » Python eCommerce, small webshop или маленький магазинчик. » Март 26, 2010 11:53:45

вот нарыл на форуме обсуждение http://python.su/forum/viewtopic.php?id=3023 , а есть ли готовое решение на питоне сразу с привязками на платёжные системы или же просто не большие решения?

Python проекты » OSQA Open Source проект на Django » Март 25, 2010 17:55:23

В начале этого года группа разработчиков при поддержке DZone, Inc запустили Open Source систему Вопрос-Ответ с элементами wiki - пользователи набирающие определенное кол-во голосов получают различные привелегия и бонусы, вплоть до возможности удаления и редактирования чужих сообщений.
оф сайт - osqa.net
вопросы по системе она же демка - meta.osqa.net
исходники и описание установки тут - github.com/OSQA/osqa (как по мне так здесь INSTALL.webfaction более понятный процесс установки описан)
русификации пока нет, как появится будет здесь - osqa.ru/forum/
Это пост-приглашение для тех кто хочет поработать над проектом на Django, я со своей стороны могу бесплатно выделить место под тесты на серваке с питон 2.6.4 со всеми необходимыми фишками, django и mod_wsgi, ну это не всем подряд конечно

Django » Перенос данных mysql в sqlite3 посредством ОРМ » Март 24, 2010 17:27:54

Есть проект на джанге нужно сменить бд mysql в sqlite3 и перенести данные, как это лучше сделать? думаю должны быть средства для переноса через сам ОРМ, те к примеру зафиксить префиксы в виде создания моделей .. кто нибудь сталкивался ?

Web » XML-RPC and URFA_Client from UTM5(NetUP) » Март 23, 2010 05:34:31

Всем привет! Есть на форму кто делал связь python(XML-RPC) и URFA_Client?