Problem z QT Design
-
Hej wszystkim,
Na forum jestem nowy. Dodatkowo, początkujący jestem również jeżeli chodzi o RPI a także C++ (wcześniej C, C#) i linuksa. Zostałem wrzucony w pewien projekt, który wymaga dopracowania istniejącej aplikacji wizualizacyjnej na RPI. Kod na RPI kompilowany jest skrośnie z PCta. Cały projekt, wraz z konfiguracją środowiska został odziedziczony po kimś. Ze względu na ograniczenia czasowe, niemożliwe jest też rozpoczynanie go od początku. Jeden z głównych problemów jest taki, że zmiany wprowadzane w zakładce Design mojego QT 5.6 tak jakby nie są widziane przez kod programu. Nie możliwe jest użycie go do tworzenia połączeń sygnał->slot, niemożliwe jest tworzenie nowych widgetów etc. W sensie, w plikach .ui coś powstaje, ale za nic nie ma wpływu na pozostałą część projektu. Czy ktoś z was spotkał się z takim problemem? (całą resztę źródeł przeszukałem).
Pozdrawiam i liczę na pomoc. -
Odpal qmake i zrób pełny rebuild (prawy klawisz na projekcie, "Run qmake" a potem "Rebuild"), powinno pomóc.
Zmiany spawdzasz lokalnie na PC, czy od razu na Raspberry Pi? Bo może być jeszcze tak, ze deployment nie jest skonfigurowany i ci się wszystko kompiluje ładnie, tylko nie wysyła do malinki.
-
Sprawdzam od razu na malinie. Próbowałem kompilować kod na desktopie i wyrzuca mnóstwo (prawie 500) błędów w plikach mathcalls.h, cmath, random, qchar.h i wielu innych bezpo średnio nie includowanych. Wygląda jak błędna konfiguracja, ale nie widzę nigdzie błędów względem poradników dostępnych w sieci.
Jeżeli chodzi o odpalanie na malinie, to wszelkie inne zmiany bezpośrednio w kodzie są widoczne. Tylko te wprowadzone przy pomocy designera są pomijane. Wykonałem qmake i przebudowałem projekt, zmian niestety nie ma. -
Hm, tak wygląda na błedny config. Dobrze byłoby sprawdzić na jakimś czystym projekcie. Może brakuje zainstalowanego kompilatora albo jakichś bibliotek. Jeśli to coś "debianowate", to zainstalowanie build-essential powinno pomóc:
sudo apt install build-essential
Jeżeli chodzi o odpalanie na malinie, to wszelkie inne zmiany bezpośrednio w kodzie są widoczne. Tylko te wprowadzone przy pomocy designera są pomijane.
Hm, to bardzo dziwne. Zmiany plików .ui są przetwarzane przez generator uic na kod C++ i kompilowane bezpośrednio z resztą projektu... Nie bardzo wiem co poradzić. W zakładce "Compilation output" w Qt Creator zobacz czy uic faktycznie jest wywoływany. I w pliku .pro czy masz dodane .ui w zmiennej FORMS:
FORMS += jakisplik.ui innyplik.ui
-
sudo apt install build-essential
Wszystko aktualne, nic nie nadpisał.
Problem rozwiązałem poprzez odznaczenie shadow-build'a w ustawieniach budowania, usunięcie ui_mainwindow oraz wszystkich moc_xxx i ui_xxx i makefile (znalezione gdzieś na innym forum). Prawdopodobnie problem leżał w tym, że gdzieś ktoś przez przypadek podmienił jakiś z powyższych plików, pewnie ui_mainwindow i od tej pory coś się pochrzaniło, powyższe nie były nadpisywane. W tym momencie poprzednik zaczął tworzyć GUI bezpośrednio z poziomu kodu.
Zobaczymy, co jeszcze wyjdzie w praniu.
Kolejny problem mam taki, że nie mogę zdalnie (z poziomu QT->narzedzia->budowanie->ap. zatrzymywane przed budowaniem) zakończyć aplikacji na malinie, a muszę to robić. Do tej pory trudzę się z terminala, ale wypadałoby to naprawić.
Pozdrawiam -
@MNowak said in Problem z QT Design:
W tym momencie poprzednik zaczął tworzyć GUI bezpośrednio z poziomu kodu.
Eh... ;-)
Kolejny problem mam taki, że nie mogę zdalnie (z poziomu QT->narzedzia->budowanie->ap. zatrzymywane przed budowaniem) zakończyć aplikacji na malinie, a muszę to robić. Do tej pory trudzę się z terminala, ale wypadałoby to naprawić.
Sugestie dla ludzi pracujących nad Qt Creatorem warto wrzucać na bugtracker https://bugreports.qt.io
Podczas pracy aplikacji mozna ją zatrzymać klikając czerwony kwadrat w zakłądce Application Output.