seebeek17 9 Napisano 17 Maja 2014 Udostępnij Napisano 17 Maja 2014 (edytowane) Witam. Jak w QT Designerze zrobić tak, by nie uruchamiał się od razu program, tylko by pierw sprawdził parametry w pliku konfiguracyjnym, a potem odpowiednio uruchomił program zgodnie z pobranymi parametrami? Przykładowo: Program się uruchamia, pier sprawdza te parametry, np. czy PasekStanu=true, i potem w zależności czy jest true czy false włącza program z lub bez paska stanu na dole aplikacji. Jak takie coś zrobić? Do tej pory pasek był na stałe włączony ale chcę, by była możliwość jego wyłączenia. Z góry dzięki za pomoc. ----------------------------------------------------------------------------------------------------------------------------------- Dobra, samemu sobie z tamtym poradziłem. Mam za to inna trudniejszą sprawę... Jak w QT zaimplementować funkcję (właściwie jak ją napisć), by kolorowała składnię? Tzw. robiąc jakiś własny notatnik, by na bieżąco kolorowało zmienne w tym notatniku od razu po ich napisaniu? Umiem zrobić, by po wczytaniu jakiegoś pliku ze skryptem do programu, "wypluło" pokolorowany kod, ale chcę by na bieżąco podczas pisania podświetlało składnię, jak w profesjonalnych środowiskach do programowania. Jbc. nie chodzi mi, jak włączyć kolorowanie składni w QT, tylko jak zrobić takie kolorowanie we własnym programie-notatniku. xd Wolę by mi ktoś wytłumaczył jak to zrobić, ale z gotowca też się będę cieszył. Plusy za pomoc. Edytowane 17 Maja 2014 przez seebeek17 Cytuj Link to post Share on other sites
Mistic92 68 Napisano 17 Maja 2014 Udostępnij Napisano 17 Maja 2014 Wait, sprawdziłem co to jest ot QT i "zestaw przenośnych bibliotek i narzędzi programistycznych dedykowanych dla języków C++, QML i Java. Ich podstawowym składnikiem są klasy służące do budowy graficznego interfejsu programów komputerowych,"Więc co jest kodem "natywnym"? I weź do tworzenia gui nie używaj żadnych designerów bo potem jest gó**o w kodzie. Cytuj Link to post Share on other sites
seebeek17 9 Napisano 18 Maja 2014 Autor Udostępnij Napisano 18 Maja 2014 weź do tworzenia gui nie używaj żadnych designerów bo potem jest gó**o w kodzie. Pierw ogarnę QT, potem wezmę się za coś innego.. Poza tym, program ma być funkcjonalny, i nikomu nie karzę podziwiać ślicznego kodu.. Poradziłem sobie z tamtym, zdolny ja. xd Nie wiem jak zrobić możliwość ew. wyłączenia kolorowania składni, ale to się już później zrobi... Za to mam kolejny problemik... Robię główne okno MainWindow, a teraz gdy chcę otworzyć nowe okno np. z ustawieniami programu, to jakie okno to tego użyć? Próbowałem z QMessageBox i niby jakoś tam chodziło, ale boję się żeby w przyszłości się nic nie waliło z tym oknem... Chciałem też zrobić w QDialog, ale nie umim a takie okno potrzebuje chyba swoje własne header'y .h a nie chcę nimi zaśmiecać projektu. QWidget wydawało się także dobrą opcją, tyle że na okno z opcjami się chyba nie nadaje... Na jakim oknie czy na czym zrobić okno z ustawieniami? Pozdro.. Cytuj Link to post Share on other sites
Mistic92 68 Napisano 19 Maja 2014 Udostępnij Napisano 19 Maja 2014 Tu nie chodzi o podziwianie kodu tylko kiedyś, o ile chcesz pracować w czymś związanym z programowaniem to inny programista będzie chcąc nie chcąc zmuszony czytać twój kod który powinien być czytelny. A designery uprzykrzają życie tobie bo nie rozumiesz co się w kodzie dzieje lub jest to totalnie porypanie zrobione. W jakim kodzie jest to gui? Cytuj Link to post Share on other sites
szatkus 282 Napisano 19 Maja 2014 Udostępnij Napisano 19 Maja 2014 @@Mistic92, QT Designer fajna sprawa, spróbuj kiedyś. @@seebeek17, jak sama nazwa mówi najlepiej się do tego nadaje QDialog. 1 Cytuj Link to post Share on other sites
seebeek17 9 Napisano 19 Maja 2014 Autor Udostępnij Napisano 19 Maja 2014 ...inny programista będzie chcąc nie chcąc zmuszony czytać twój kod który powinien być czytelny. A designery uprzykrzają życie tobie bo nie rozumiesz co się w kodzie dzieje lub jest to totalnie porypanie zrobione. Za dużego bajzlu w kodzie nie ma, bo kod GUI jest pisany w osobnym pliku. @Mistic92, QT Designer fajna sprawa, spróbuj kiedyś. Nom. Również polecam. W jakim kodzie jest to gui? Bodajże XML. @seebeek17, jak sama nazwa mówi najlepiej się do tego nadaje QDialog. Aha. A wiesz może jak takie okno się tworzy? ..czy trzeba osobne header'y .h do każdego takiego okna, czy to można w głównym main pisać? Tylko proszę nie odsyłaj mnie do dokumentacji, bo tam jest straszny syf i cały dzień bym tam siedział. ;/ Trochę w google pogrzebałem to była mowa o osobnych .h do każdego QDialog, ale żadnego przykładu nie znalazłem.. Cytuj Link to post Share on other sites
szatkus 282 Napisano 19 Maja 2014 Udostępnij Napisano 19 Maja 2014 Tyle że ja jedynie QT Quick używałem. Ale tak na zdrowy rozum to logikę do tego dialogu faktycznie lepiej trzymać w osobnym pliku, więc bez headera się nie obejdzie. Chyba że Ci się nie chce to obejdzie się bez tego. Cytuj Link to post Share on other sites
Mistic92 68 Napisano 20 Maja 2014 Udostępnij Napisano 20 Maja 2014 Wolę JavaFX Tam też jest designer i gó**o robi w kodzie fxml. Wolę sam wyklepać. Tak samo było w VisualStudio i przy swingu. Cytuj Link to post Share on other sites
seebeek17 9 Napisano 24 Maja 2014 Autor Udostępnij Napisano 24 Maja 2014 Zrobiłem jednak tym QDialog, i rozłożyłem na osobne pliki .h. Wszystko ładnie pięknie działa. A teraz takie trochę trudniejsze pytanie... Czy jest jakaś możliwość odwoływania się podczas działania własnego programu, do funkcji innego programu? Nie wiem jak by to dokładnie wytłumaczyć... np. mamy jakiś konwerter plików. teraz nasz program pobiera od użytkownika info gdzie jest plik, który chce się przekonwertować, i jego ścieżkę zapisuje w jakimś stringu czy gdzieś tam, następnie nasz program odpala funkcję odpowiedzialną za proces konwertowania w tym drugim programie. Po udanej konwersji nasz program wyświetla info, że się udało... Czy możliwe by było takie odwołanie? Jeśli tak, to jak to zrobić? Cytuj Link to post Share on other sites
Luki91 157 Napisano 24 Maja 2014 Udostępnij Napisano 24 Maja 2014 (edytowane) Czy jest jakaś możliwość odwoływania się podczas działania własnego programu, do funkcji innego programu? Nie wiem jak by to dokładnie wytłumaczyć... np. mamy jakiś konwerter plików. teraz nasz program pobiera od użytkownika info gdzie jest plik, który chce się przekonwertować, i jego ścieżkę zapisuje w jakimś stringu czy gdzieś tam, następnie nasz program odpala funkcję odpowiedzialną za proces konwertowania w tym drugim programie. Po udanej konwersji nasz program wyświetla info, że się udało... Chodzi ci o stworzenie biblioteki dll? Spróbuj tego http://qt-project.org/wiki/How_to_create_a_library_with_Qt_and_use_it_in_an_application A jeśli ci chodzi o bezpośrednie wywołanie funkcji w dowolnym innym programie, to się nie da w ten sposób. Możesz jedynie uruchomić jakiś program przekazując do niego parametr, np tą ścieżkę. Edytowane 24 Maja 2014 przez Luki91 Cytuj Link to post Share on other sites
seebeek17 9 Napisano 25 Maja 2014 Autor Udostępnij Napisano 25 Maja 2014 No właśnie chodzi mi o to, by mój exe'k korzystał z wybranych funkcji innego exe'ka, ..ale jeśli się nie da to szkoda. : / A jeśli chce się odwołać do programu konsolowego, to jak w QT napisać, by otworzyło ten drugi program z jakimś poleceniem i parametrami podanymi w naszym kodzie? np. "Convert.exe -run"..? Szukałem i próbowałem to napisać w WinExec() ale nie działa. : / Cytuj Link to post Share on other sites
szatkus 282 Napisano 25 Maja 2014 Udostępnij Napisano 25 Maja 2014 @@seebeek17, ja używałem do tego ShellExecute. Ale ja jestem staroświecki, to było jeszcze w czasach Windowsa 98, możliwe że .NET ma jakieś lepsiejsze funkcje do tego. 1 Cytuj Link to post Share on other sites
seebeek17 9 Napisano 28 Maja 2014 Autor Udostępnij Napisano 28 Maja 2014 ok, podziałało. Do tej pory sobie jakoś radziłem, ale teraz to już zastopowałem się permamentnie. : / Otóż mam okno główne QMainWindow i okno dziedziczące QWidget, W QMainWindow mam funkcję ZapiszDane() i chcę ją wywołać w oknie QWidget, ale nie wiem jak. : / ...A dokładniej... jest sobie program, on na starcie pobiera dane z pliku konf. i uruchamia odpowiednio program, po kliknięciu przycisku Zapisz w ustawieniach (okno ustawień zrobione w QWidget) ma się uruchomić funkcja ZapiszDane(), która jest napisana w klasie QMainWindow, no i teraz nie wiem jak mam się do tej funkcji odwołać z klasy QWidget. Próbowałem zrobić funkcję ZapiszDane() na publiczną, nawet kombinowałem z friend, i nic to nie dało, nadal nie działa. Jak mam się odwołać do tej funkcji w głównej klasie? Cytuj Link to post Share on other sites
szatkus 282 Napisano 29 Maja 2014 Udostępnij Napisano 29 Maja 2014 @@seebeek17, nie łapię. Funkcja czy metoda? Masz referencję do instancji QMainWindow? W nagłówkach ta metoda istnieje? Cytuj Link to post Share on other sites
seebeek17 9 Napisano 29 Maja 2014 Autor Udostępnij Napisano 29 Maja 2014 sorki, niedokładnie się wyraziłem. Chodzi mi o metody. Mam .cpp i .h od QMainWindow + osobny .cpp i .h do QWidget - okna opcji. W .h QMainWindow mam zadeklarowaną publiczną funkcję, a w .cpp jej kod, i teraz chcę użyć metody tej funkcji w .cpp od QWidget.. Nwm. czy dobrze wyjaśniłem to daję też kawałek kodu. http://wklej.org/id/1376385/ Cytuj Link to post Share on other sites
szatkus 282 Napisano 29 Maja 2014 Udostępnij Napisano 29 Maja 2014 void Ustawienia::on_Zapisz_clicked() { ZapiszDane(); // Tutaj chce wywolac ta metode ZapiszDane z QMainWindow } Przecież ta metoda jest tutaj niewidoczna. Przekaż referencję do QMainWindow i z tego wywołaj. 1 Cytuj Link to post Share on other sites
seebeek17 9 Napisano 29 Maja 2014 Autor Udostępnij Napisano 29 Maja 2014 Próbowałem ale nie chciało się skompilować. Może źle zrobiłem... szatkus, jak to zrobić? tą referencję? ;/ Cytuj Link to post Share on other sites
szatkus 282 Napisano 29 Maja 2014 Udostępnij Napisano 29 Maja 2014 @@seebeek17, może weź się za jakiś prostszy język Cytuj Link to post Share on other sites
seebeek17 9 Napisano 29 Maja 2014 Autor Udostępnij Napisano 29 Maja 2014 (edytowane) nie tam, c++ jest fajny xD po prostu jestem trochę leniwy... ;/ dobra, jakoś se poradzę, dzięki za naprowadzenie na rozwiązanie. Edytowane 29 Maja 2014 przez seebeek17 Cytuj Link to post Share on other sites
Mistic92 68 Napisano 3 Czerwca 2014 Udostępnij Napisano 3 Czerwca 2014 Ilu języków już próbowałeś? Cytuj Link to post Share on other sites
seebeek17 9 Napisano 5 Czerwca 2014 Autor Udostępnij Napisano 5 Czerwca 2014 Ilu języków już próbowałeś? Szczerze... xD ... to kilku...nastu.. Jeszcze chciałem zrobić własny język skryptowy, ale za dużo z tym roboty, to używałem lua, bo potrzebowałem do apki.. Własny może kiedy indziej jak wena będzie.. xd Ok, obczaiłem tą referencję, fajna sprawa. Coś tam porobiłem, tu się coś dopisało, tam też coś, no i pięknie śmiga.. ... Ale mam kolejny problem, .. jeszcze trudniejszy w rozwiązaniu.. Otóż, robię program, zrobiłem do niego własne rozszerzenie, no i teraz jestem w kropce. Chcę, by po włączeniu pliku z moim rozszerzeniem, np. przesunięciem ikonki pliku na mój program, lub kliknięciu PPM->Otwórz za pomocą->... uruchamiał się mój program.... no i najlepiej, by się dało go tak uruchomić z menu kontekstowego, takiego jak ma np. winrar - "PPM->Dodaj do archiwum..". , tyle, że z parametrem..by program go np. ... odebrał jakoś.. nwm. jak by to wytłumaczyć.... np. Jak normalnie uruchomię program, to odpowiednie kontrolki menu będą nieaktywne, i dopiero jak weźmie się "Nowy->Projekt", to otwiera się nowy pusty projekt i kontrolki się aktywują (są to opcje projektu etc.), a gdy się plik z zapisanym projektem przeciągnie na program to, żeby kontrolki się aktywowały i by wczytało plik projektu.. I nie mam pomysłu jak to wgl. napisać, od czego zacząć, co ma taki kod zawierać... : / Cytuj Link to post Share on other sites
Recommended Posts
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.