Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Programy vytvořené QtCreatorem mají špatný pracovní adresář [vyřešeno]  (Přečteno 1280 krát)

Firzen

  • Stálý člen
  • **
  • Příspěvků: 1287
    • Beroot
Zdravím,

už celkem dlouho mě trápí, že program, které vytvořím v qtcreatoru mají chybný pracovní adresář. Chyba se projevuje dost podivně. Pokud výsledný program spustím přímo v IDE, tak to všechno chodí tak, jak má. Avšak pokud na program poklikám v Dolphinu, tak je jeho pracovní adresář nastaven nesmyslně na /home/firzen/dokumenty. Na jiných počítačích to je zase jinak, tam je to (aspoň) v $HOME. Ale když otevřu Konsoli a spustím program (./program), tak funguje úplně správně! A v Gnome běží úplně všechno, jak má. I pod Windows.

Neví někdo, co je toto za dementní chybu?
« Poslední změna: 30 Července 2010, 00:11:05 od Firzen »
AMD Phenom II X6 1100T@3,3GHz, Gigabyte GeForce GT 430 1GiB, 8GiB RAM, 1TiB SATA3 HDD, Nokia N900
OS: Debian 6.0 Squeeze, Maemo 5
Citace
Prosintě ty jsi takový zkušený vývojář - co mám dělat, když nevím, jako něco udělat? :D

Martin - ViPEr*CZ*

Re: Programy vytvořené QtCreatorem mají špatný pracovní adresář
« Odpověď #1 kdy: 28 Července 2010, 21:03:28 »
To musí být něco v Dolphinovi... ten browser musí nějakým způsobem vnutit tomu programu pracovní složku. Ve windows ve WIN32 API jsem to dělal nějakou metodou, která vracela cestu k exe souboru toho spuštěného programu a já si jen odebral jméno souboru z té cesty a měl jsem onu složku pracovní odkud se spouštěl daný exe. Vím třeba, že když se daný soubor stáhnul a pustil třeba přes flashget download akcelerátor, tak mu to vnutilo jeho pracovní složku (což se asi děje s daným problémem). Chce to najít nějakou metodu, která bude vracet aktuální absolutní cestu daného programu. Nevím jestli todle přímo ošetřuje Qt framework. Zkuste hledat. Win32 má metodu na to přímo.
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

Firzen

  • Stálý člen
  • **
  • Příspěvků: 1287
    • Beroot
Re: Programy vytvořené QtCreatorem mají špatný pracovní adresář
« Odpověď #2 kdy: 30 Července 2010, 00:00:00 »
Tedy, Martine, velmi děkuju za parádní nakopnutí! Vůbec mě ten postup nenapadl, pořád jsem cosi zoufale hledal v nastavení projektu v qtcreatoru ale nic nefungovalo.
Díky tvé radě jsem našel fungující řešení:
Kód: [Vybrat]
#include <QDiR>

QDir::setCurrent(QApplication::applicationDirPath());
A je to!! ;)
« Poslední změna: 31 Července 2010, 13:58:37 od Firzen »
AMD Phenom II X6 1100T@3,3GHz, Gigabyte GeForce GT 430 1GiB, 8GiB RAM, 1TiB SATA3 HDD, Nokia N900
OS: Debian 6.0 Squeeze, Maemo 5
Citace
Prosintě ty jsi takový zkušený vývojář - co mám dělat, když nevím, jako něco udělat? :D

Kedrigern

Re: Programy vytvořené QtCreatorem mají špatný pracovní adresář
« Odpověď #3 kdy: 30 Července 2010, 00:07:45 »
To same mimochodem dela Mono a Monodevelop.

Martin - ViPEr*CZ*

Re: Programy vytvořené QtCreatorem mají špatný pracovní adresář
« Odpověď #4 kdy: 30 Července 2010, 09:38:02 »
Tedy, Martine, velmi děkuju za parádní nakopnutí! Vůbec mě ten postup nenapadl, pořád jsem cosi zoufale hledal v nastavení projektu v qtcreatoru ale nic nefungovalo.
Díky tvé radě jsem našel fungující řešení:
Kód: [Vybrat]
QDir::setCurrent(QApplication::applicationDirPath());A je to!! ;)
Díky za vyhledání. Našel bych ti to já, ale jsem trochu více zaneprázdněn. Vím, že jsem s tím taky strávil dost času ve windows, kdy jsem si dělal vlastní install wizard a tam todle bylo potřeba, protože lidi co si to stáhli z netu, tak to vždy nemuseli spustit dvojklikem na danou ikonku, ale přes úplně jiný program a ten mohl vnutit svoji pracovní složku což bylo nežádoucí. Ještě jednou díky, že jsi řešení uvedl i sem.
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

premet

  • Host
Hm dobré vedět  :)

Kedrigern

Vím, že jsem trochu offtopic, ale nechce se mi zakládat nové vlákno.

Program v Monu (MonoDevelop, .NET) spuštěný z grafického prostředí má snad vždy pracovní adresář $HOME, nicméě cestu k adresáři, kde je binárka, která je spuštěna je v Application.StartupPath (pozor bez koncového lomítka, tuším že je třeba použít using System;).

 

Provoz zaštiťuje spolek OpenAlt.