Skocz do zawartości

Pytanie programowanie w QT


Recommended Posts

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 przez seebeek17
Link to post
Share on other sites

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. 

Link to post
Share on other sites
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..

Link to post
Share on other sites

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? 

Link to post
Share on other sites
...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..

Link to post
Share on other sites

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.

Link to post
Share on other sites

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ć?

Link to post
Share on other sites
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 przez Luki91
Link to post
Share on other sites

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. : /

Link to post
Share on other sites

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?

Link to post
Share on other sites

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/

Link to post
Share on other sites
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.

  • Popieram 1
Link to post
Share on other sites

Ilu języków już próbowałeś? :D

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.. :D

 

...

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ć... : /

Link to post
Share on other sites

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ą.

Gość
Odpowiedz w tym wątku...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...