Вход | Регистрация

Въпроси по проектите

  • Здравейте, ето разни въпроси, които вас едва ли ще ви затруднят (но мен ме затрудниха). ще се радвам да помогнете :)

    1. какво ползвате за връзката с база данни? ако се ползва MySQLdb трябва ли да се прави базата през MySQL задължително, понеже има разлики в синтаксиса.

    2. какво импортвате за да се ползват askokcancel и други message box-ове (импортване tkMessageBox не става, а само в tkinter ги няма)

    3. за викане на други програмки ползвам call (пример call(['CustomerView.py'])) само че дава следната грешка:

    Exception in Tkinter callback

    Traceback (most recent call last):

    File "C:\Python30\lib\tkinter\__init__.py", line 1399, in __call__

    return self.func(*args)

    File "C:\Documents and settings\deha\Desktop\PyProj\CustomerList.py", line 65, in new

    call(['CustomerView.py'])

    File "C:\Python30\lib\subprocess.py", line 399, in call

    return Popen(*popenargs, **kwargs).wait()

    File "C:\Python30\lib\subprocess.py", line 594, in __init__

    erread, errwrite)

    File "C:\Python30\lib\subprocess.py", line 821, in _execute_child

    startupinfo)

    WindowsError: [Error 193] %1 is not a valid Win32 application

    това предполагам, че е нещо елементарно, но... :)

    27.06.2009 (променeно 19.07.2009)
  • Здравейте, ето разни въпроси, които вас едва ли ще ви затруднят (но мен ме затрудниха). ще се радвам да помогнете :)

    (отговорите са при положение че ползваш py3)

    1. какво ползвате за връзката с база данни? ако се ползва MySQLdb трябва ли да се прави базата през MySQL задължително, понеже има разлики в синтаксиса.

    Значи в зависимост от това каква база данни ползваш ти трябват различни модул - ако ползваш mysql - MySQLdb (което последния път като гледах го нямаше за py3); postgresql - psycopg2 (има patch за py3), py-postgresql и pg8000-py3 (и двете за py3); oracle - cx_Oracle;

    2. какво импортвате за да се ползват askokcancel и други message box-ове (импортване tkMessageBox не става, а само в tkinter ги няма)

    improm tkinter import messagebox
    messagebox.askokcancel(...)

    3. за викане на други програмки ползвам call (пример call(['CustomerView.py'])) само че дава следната грешка:

    call иска "executable", под unix това нещо може и да мине (при определени условия), но под win ядрото няма да го изпълни... Това което искаш е или:

    import subprocess
    subprocess.call([r'C:\Python30\bin\Python30.exe', 'CustomerView.py']) # името на exe-то го пиша наизуст...
    # или
    import CustomerView
    CustomerView.main(*args) # при положение че може така да се вика

    Има още няколко начина, но не знам за какво точно ти трябва, като цяло subprocess.call([r'C:\Python30\bin\Python30.exe', 'CustomerView.py']), не е хубава идея, макар че зависи какво точно правиш...

    27.06.2009
  • мерси много :)

    27.06.2009
  • Здравейте,

    Пиша проекта си на PyQt и реших да го направя да се справя добре с ресайзването. Проблема ми е, че получавам ресайз събитието много пъти, а за консистентност трябва да се извършва едновременно ресайзване по височина и дължина. Когато го обработвам става малко грозно, защото "ръчно" се грижа за това отношението на височина към ширина да е едно и същи. За да се справя с това се опитах да ползвам QSizePolicy, но нещо не успях да догодя. Ето какво написах:

    self.setSizeIncrement(30,40)
    sizePol = self.sizePolicy()
    sizePol.setHeightForWidth(True)
    self.setSizePolicy(sizePol)

    където self е инстанция на наследник на QMainWindow. Когато пробвам да ресайзна по едно от двете направления, то ресайзва само по него, въпреки този код. Някой може ли да ми каже къде е проблема или просто да ме посъветва как да направя това, което искам.

    03.07.2009
  • Въпросът ми днес :) е: ползвам windowsXP и python3 става ли по някакъв начин модула pg8000 или той е само за UNIX? съответно ако става - как? или трябва задължително да ползвам py-postgresql...

    03.07.2009
  • Въпросът ми днес :) е: ползвам windowsXP и python3 става ли по някакъв начин модула pg8000 или той е само за UNIX? съответно ако става - как? или трябва задължително да ползвам py-postgresql...

    Не знам да не може - то е pure python, би следвало...

    Сваляш го, разархивираш го, отиваш в директорията и python3.0 setup.py install

    03.07.2009
  • Имам няколко въпроса по проекта "Фрактали".

    1. Тъй като генерирането на фракатала се базира на изцикялане за всяка точка от равнинния сектор то програмата работи бавно. Нормално ли е да отнема по 2-3 секунди за ичертаване на фрактала.

    2. Има ли клас в PyQt, който да ми позволява да чертая в него, а не директно на екрана, след което да flush-на изчертаното в класа върху екрана. Значително по-бързо ще е отколкото да се чертае точка по точка.

    3. Това не е точно по темата, но какво представлява unit test за графично приложение? За момента не се сещам за нищо.

    06.07.2009
  • Оправих се :)

    07.07.2009 (променeно 07.07.2009)
  • @Васил Великов

    Може да ползваш QImage и да чертаеш в него и после в paintEvent-a да извикаш да ти се изчертае image-а. QImage е оптимизиран за работа с вход-изход, както и за бързо манипулиране на данните върху него.

    07.07.2009
  • имам следния проблем със задаването на стойност по подразбиране в Entry поле: когато старнирам модула самостоятелно всичко е ОК

    t1 = StringVar()

    eEURBGN = Entry(liframe, textvariable=t1, width=7)

    eEURBGN.grid(row=0, column=2, sticky=W)

    t1.set(EURBGN)

    и стойността на EURBGN се показва нормално. когато извикам модула от друг модул полето не се пълни с нищо, а print(t1) след t1.set(EURBGN) показва PY_VAR0 самостоятелното стартиране на модула правя с

    if __name__ == '__main__':

    main(1)

    а външното с FXrate.main(1) като и двете ми се струват доста еднакви... някакви идеи?

    07.07.2009 (променeно 07.07.2009)
  • Здравейте,

    Имам няколко въпроса за калкулатора:

    1. От нас се очаква нещо "такова": http://www.arachnoid.com/...culator.html или калкулатор, който да обработва цял rpn израз например: a b + c d - * , тоест целия израз да се въведе в дисплея и след това да се пресметне

    Ако отговора е второто, то очаква ли се да работят изрази от вида pi 2 / sin, a b * ln sqrt, тоест по конкретно питам дали трябва да работят едно-агрументните операции.

    2. Само rpn нотация ли се поддържа или и стандартната

    3. какво е променлива в калкулатор

    15.07.2009 (променeно 15.07.2009)
    • калкулатора трябва да позволява въвеждане и оценяване на [цели] изрази в обратен полски запис
    • едноаргументните операции трябва да работят
    • изискваме поддръжката на rpn нотация, но може да си направите режим за обикновена нотация ако искате
    • променлива в калкулатора си е съвсем като променлива в пълнофункционален език за програмиране. Общо взето това е име, с което се свързва стойност или израз и позволява след това да бъде употребявано в други изрази, където се замества с асоциираната стойност. Искаме потребителя да може да променя асоциираната стойност за това име. Пример: ако x е променлива със стойност 2, то изразът x x + се оценява с 4.

    Още:

    • тялото на функцията трябва да бъде rpn израз
    • не сме фиксирали интерфейса за дефиниране на променливи и функции. Това може да става чрез текстови полета и бутони или чрез въвеждане на специален израз в шел

    Примерен синтаксис за дефиниране на променливи и функции, който разшиява RPN изразите (; са коментари до края на реда)

    x: 2                      ; дефинираме променливата x със стойност 2
    y: x 100 *                ; за стойността може да се използва израз
    x y f: x x * y y * + sqrt ; дефинираме функция f с два формални параметъра x и y
    15.07.2009 (променeно 15.07.2009)
  • Главния проблем, с който се сблъсках е PyQt syntax. Гледах в примери от официалният им сайт, но не се получават. А нямам опит с нито 1 от възможните програми. Съвети?

    15.07.2009
  • Tkinter е по-прост от PyQt, разгледай примери и прецени кое ще ти е по-лесно.

    Аз като се занимавам с такова нещо гледам да чета повече сорс, от примери и разни проекти с отворен код. Разбира се и manual-а/api-reference са винаги подръка. Виж и самото Qt, не само PyQt.

    15.07.2009
  • 1. до колко аргумента мойе да има една функция 2. какво ще стане ако опитам да начертая графиката на x+y+z+t+......

    15.07.2009
  • а и още нещо може ли да да има x x + y y + * sqrt, тъи като не е спомената в условието нисщо за коренуване , логаритмуване и така нататък ....

    15.07.2009
  • Функцията може да има произволен брой аргументи, но трябва да поддържате графики само за функции на едни аргумент. Ако потребителя се опита да начертае функция на повече от един аргумент и вие не го поддържате, трябва да го уведомите най-учтиво за това.

    Пише за степенуване, от което получаваш коренуване, пък без log за къде? Слагате стандартните операции (от math например)

    15.07.2009
  • и още едно нещо, можем ли да използвам math и всякакви други вградени библиотеки

    15.07.2009
  • По принцип не, но за теб правим изключение ;)

    15.07.2009
  • и все пак(след 8 часа на работа хуморът ми е доста притапен ) може ли да ги ползваме . да или не или несхто друго...

    15.07.2009
  • и все пак(след 8 часа на работа хуморът ми е доста притапен ) може ли да ги ползваме . да или не или несхто друго...

    Всичко което е в стандарта (python/GUI lib) може да се ползва наготово, за допълнителни модули е хубаво да питаш предварително...

    P.S. Днес ни беше тежък ден (на нас с Митко), така че хуморът ни е малко по-черен... и в следващите 2 дена не се очаква подобрение...

    15.07.2009
  • Човек ще си помисли, че сте били на държавен изпит. :Р

    16.07.2009
  • да речем имаме функцията f(x) = x 2 + искам да пресметна f(x) + 4. как се записва това в RPN - f(x) 4 + ili x f 4 +

    16.07.2009
  • искам да се вържа към БД но питона пищи че няма модул. Използвам пътхн 3.0.1 и постгрес. Как да се справя с проблема ???

    16.07.2009
  • x 4 f +;за калкулатор не ти трябва база данни;с Пайтън не върви стандартен модул за PostgreSQL, само за SQLite

    надявам се че няма да видим база данни в калкулатора?

    16.07.2009 (променeно 16.07.2009)