Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Firzen 28 Července 2010, 18:13:48

Název: Programy vytvořené QtCreatorem mají špatný pracovní adresář [vyřešeno]
Přispěvatel: Firzen 28 Července 2010, 18:13:48
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?
Název: Re: Programy vytvořené QtCreatorem mají špatný pracovní adresář
Přispěvatel: Martin - ViPEr*CZ* 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.
Název: Re: Programy vytvořené QtCreatorem mají špatný pracovní adresář
Přispěvatel: Firzen 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!! ;)
Název: Re: Programy vytvořené QtCreatorem mají špatný pracovní adresář
Přispěvatel: Kedrigern 30 Července 2010, 00:07:45
To same mimochodem dela Mono a Monodevelop.
Název: Re: Programy vytvořené QtCreatorem mají špatný pracovní adresář
Přispěvatel: Martin - ViPEr*CZ* 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.
Název: Re: Programy vytvořené QtCreatorem mají špatný pracovní adresář [vyřešeno]
Přispěvatel: premet 30 Července 2010, 10:04:08
Hm dobré vedět  :)
Název: Re: Programy vytvořené QtCreatorem mají špatný pracovní adresář [vyřešeno]
Přispěvatel: Kedrigern 06 Srpna 2010, 14:15:24
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;).