PyQT

КПК с Linux, установка Linux на iPaq и другие модели, программы
Vladimir the Red Sunny
Студент (1 lvl)
Сообщения: 25
Зарегистрирован: Пн апр 17, 2006 10:44

PyQT

Сообщение Vladimir the Red Sunny » Вт июн 06, 2006 12:22

Хотел спросить про PyQT, но, пока собирался, с тем вопросом разобрался самостоятельно.... Но возник другой вопрос.

Запускаю программу из консоли: python mycoolprog.py
При развороте экрана окно этой программы исчезает. Как его это самое? А если запускать при уже перевернутом (в portarit) экране - вообще не запускается, и пишет, что не может что-то куда-то коннект....

PyQT у меня отсюда: http://pyqplayer.sourceforge.net/cgi-bi ... erDownload

Аватара пользователя
DMych
Доктор (4 lvl)
Сообщения: 435
Зарегистрирован: Пн июл 28, 2003 10:20

Сообщение DMych » Вт июн 06, 2006 12:51

Это не только с питоном - запуск любой гуевой программы из консоли. Видимо, бага в Qkonsole.
Я когда отлаживаю и запускаю из консоли, никогда не переключаюсь на другие приложения и не разворачиваю экран. Потом создаю ярлык для запуска проги (у меня спец. закладка для этого есть) и запускаю уже оттуда.
Zaurus SL-C860 + SD 1G + CF 512M + Bluetooth-GPRS
Cacko 1.22a

Vladimir the Red Sunny
Студент (1 lvl)
Сообщения: 25
Зарегистрирован: Пн апр 17, 2006 10:44

Сообщение Vladimir the Red Sunny » Чт июн 08, 2006 10:03

Как вызвать QFileDialog? Пишет, что "global name 'QFileDialog' is not defined"....

Аватара пользователя
DMych
Доктор (4 lvl)
Сообщения: 435
Зарегистрирован: Пн июл 28, 2003 10:20

Сообщение DMych » Чт июн 08, 2006 11:04

Vladimir the Red Sunny писал(а):Как вызвать QFileDialog? Пишет, что "global name 'QFileDialog' is not defined"....
В этой версии эти диалоги отсутствуют. :(
Я использую собственный класс. См. тут: http://pyqt.wikispaces.com/FileDialog
Zaurus SL-C860 + SD 1G + CF 512M + Bluetooth-GPRS
Cacko 1.22a

Vladimir the Red Sunny
Студент (1 lvl)
Сообщения: 25
Зарегистрирован: Пн апр 17, 2006 10:44

Сообщение Vladimir the Red Sunny » Чт июн 08, 2006 13:19

Да, прочитал, что типа QFileDialog вообще выброшен из кутопии.... Странно. Но там же присутствует возможность выбора файлов, в других программах - она через чё реализуется?

Еще вопрос. Когда создаётся ярлык для запуска - надо как исполняемый файл указывать именно mycoolprogram.py? Не python mycoolprogram.py?
И питоновские файлы надо класть в какое-то специальное исполняемое место - или можно в ярлыке дать ссылку в /Documents/... ?

Аватара пользователя
DMych
Доктор (4 lvl)
Сообщения: 435
Зарегистрирован: Пн июл 28, 2003 10:20

Сообщение DMych » Чт июн 08, 2006 14:48

блин, жаль, что вики до сих пор не починили... там есть ответы на ваши вопросы... :(

посмотрите вот тут:
http://forum.sources.ru/index.php?s=424 ... opic=98977

исполняемый файл должен быть в /home/QtPalmtop/bin. он должен быть исполняемым, может быть симлинком на реальный файл, находящийся в другом месте.
Zaurus SL-C860 + SD 1G + CF 512M + Bluetooth-GPRS
Cacko 1.22a

Vladimir the Red Sunny
Студент (1 lvl)
Сообщения: 25
Зарегистрирован: Пн апр 17, 2006 10:44

Сообщение Vladimir the Red Sunny » Чт июн 08, 2006 16:53

Хм.... если у меня программа из десятка питоновских файлов - это надо их все в бин? Или там можно создать под-директорию?

Аватара пользователя
DMych
Доктор (4 lvl)
Сообщения: 435
Зарегистрирован: Пн июл 28, 2003 10:20

Сообщение DMych » Чт июн 08, 2006 17:24

я делаю так: все кладу, например, в /home/QtPalmtop/share/myprogram (там что угодно - файлы, каталоги...),
а в /home/QtPalmtop/bin создаю симлинк:
ln -s /home/QtPalmtop/share/myprogram/myprogram.py /home/QtPalmtop/bin/myprogram

а чтобы в программе получить путь не в bin, а к каталогу с настоящими файлами, использую функцию типа:

Код: Выделить всё

def getProgramPath():
    '''возвращает путь к программе, независимо от того, запущена ли по симлинку или напрямую'''
    import sys, os.path
    pname = sys.argv[0]
    if os.path.islink(pname):
        pname = os.readlink(pname)
    return os.path.split(pname)[0]
Zaurus SL-C860 + SD 1G + CF 512M + Bluetooth-GPRS
Cacko 1.22a

maslovsky
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Сообщение maslovsky » Чт июн 08, 2006 17:43

Vladimir the Red Sunny писал(а):Да, прочитал, что типа QFileDialog вообще выброшен из кутопии.... Странно. Но там же присутствует возможность выбора файлов, в других программах - она через чё реализуется?
В шарповской (и соответственно Cacko) прошивке файловые диалоги есть в библиотеке libsl.so. Хедеры тут:

http://zaurususergroup.org/UpDownload+i ... d-27.phtml

Не знаю, можно ли это замапить нв PyQt.

А так все пишут своё, кто на что горазд

Аватара пользователя
DMych
Доктор (4 lvl)
Сообщения: 435
Зарегистрирован: Пн июл 28, 2003 10:20

Сообщение DMych » Чт июн 08, 2006 17:53

maslovsky писал(а):В шарповской (и соответственно Cacko) прошивке файловые диалоги есть в библиотеке libsl.so. Хедеры тут:

http://zaurususergroup.org/UpDownload+i ... d-27.phtml

Не знаю, можно ли это замапить нв PyQt.
ИМХО это не так просто. Проще использовать самописный модуль (по крайней мере мне) и не заморачиваться. ;)
Zaurus SL-C860 + SD 1G + CF 512M + Bluetooth-GPRS
Cacko 1.22a

Vladimir the Red Sunny
Студент (1 lvl)
Сообщения: 25
Зарегистрирован: Пн апр 17, 2006 10:44

Сообщение Vladimir the Red Sunny » Чт июн 08, 2006 18:33

Ничо не получается, ***й линух... :(

Аватара пользователя
DMych
Доктор (4 lvl)
Сообщения: 435
Зарегистрирован: Пн июл 28, 2003 10:20

Сообщение DMych » Пт июн 09, 2006 11:45

Vladimir the Red Sunny писал(а):Ничо не получается, ***й линух... :(
хм... "ничего" - что именно?
...вроде, все описал, как надо. просто повторить. у меня все получается.
и линух тут не при чем. ;)
Zaurus SL-C860 + SD 1G + CF 512M + Bluetooth-GPRS
Cacko 1.22a

Vladimir the Red Sunny
Студент (1 lvl)
Сообщения: 25
Зарегистрирован: Пн апр 17, 2006 10:44

Сообщение Vladimir the Red Sunny » Пт июн 09, 2006 12:35

Прога на Питоне лежит в /Documents/proga. Работает, если вызвать из консоли как python proga.py. Сделал симлинк в /home/QtPalmtop/bin - оттуда тоже запукается, если набрать python my_symlink. А как запустить ее (пока из консоли) как исполняемый файл, т. е., без "python"?
Потом я взял файл .desktop для калькулятора, скопировал, переименовал, поменял содержимое, чтобы указывало на мой симлинк. После перезагрузки появился ярлык (с иконой от калькулятора, правда, потому что я её не менял, но это пофиг), при нажатии на него появляются песочные часы секунд на пять, потом исчезают - это всё. Да, еще сделал для симлинка chmod +x (по инструкции отсюда: http://www.oesf.org/forums/lofiversion/ ... 11412.html) - ни фига не помогло.
Десктоповый файл выглядит примерно так:

Код: Выделить всё

[Desktop Entry]
#Comment = My Program
CanFastload = 0
Display = 640x480/144dpi,480x640/144dpi
Exec = my_symlink
HidePrivilege = 1
Icon = Calculator
Name = MyProgram
Type = Application
#!/usr/bin/env python в первой строчке питоновских файлов есть.

Vladimir the Red Sunny
Студент (1 lvl)
Сообщения: 25
Зарегистрирован: Пн апр 17, 2006 10:44

Сообщение Vladimir the Red Sunny » Вт июн 13, 2006 09:04

Разобрался - дело было в CR LF. Если вызывать явно интерпретатор питона из командной строки - всё ок, если вызывать скрипт через ./script.py - проблема.

DMych, а как использовать Ваш файловый диалог?

Аватара пользователя
DMych
Доктор (4 lvl)
Сообщения: 435
Зарегистрирован: Пн июл 28, 2003 10:20

Сообщение DMych » Вт июн 13, 2006 10:43

Vladimir the Red Sunny писал(а):DMych, а как использовать Ваш файловый диалог?
Так же, как любой другой модальный диалог.
Вот пример из ZMetro MapEditor (метод, вызываемый по нажатию кнопки "Open"):

Код: Выделить всё

    def openMap(self):
        # создаем диалог
        dlg = FileDialog(self, 'OpenFile', 'Open File',                         
                         dirName='/home/zaurus/Documents/application/zmetro/',  
                         filter='*.png|*.jpg|*.gif')
        # активируем диалог и проверяем по окончании выбран ли файл?
        if dlg.exec_loop() and dlg.selectedFile():
            # выбранный файл возвращает selectedFile()
            self.openFile(dlg.selectedFile())                                   
Zaurus SL-C860 + SD 1G + CF 512M + Bluetooth-GPRS
Cacko 1.22a

Закрыто

Вернуться в «КПК и смартфоны на Linux: Zaurus, планшеты Nokia, прочее»