Osadzanie aplikacji Qt wewnątrz aplikacji QtFriday, January 27. 2012Qt4 jest fajne. Ale... nie zawsze, jak to zwykle w życiu bywa. Piszę aplikację, która składa się z kilku mniejszych aplikacji i jednego GUI nadrzędnego, hosta, w którym osadzone są te mniejsze. Całe szczęście, że składniki również ja piszę, inaczej byłby niezły problem. W czym problem? Ano w tym, że zawsze do tej pory do osadzania okna w oknie pod kontrolą Windows, używałem funkcji tego typu: i wszystko pięknie działa, dopóki oknem osadzanym nie jest aplikacja, która również jest napisana w Qt. Dlaczego? Ano dlatego, że w przeciwieństwie do każdej innej aplikacji, która po takim powyżsyzm zabiegu pięknie działa osadzona w okienku wewnętrznym, aplikacja Qt przestaje działać - w sensie, przestaje działać obsługa eventów. Wszelkie buttony, menu itp. mówią: "jak tak, to ja strajkuję!". Ok, powiedziałem, i przekompilowałem aplikację-dziecko na bibliotekę, w aplikacji-rodzicu tworząc ręcznie obiekt typu QMainWindow tego nieposłusznego dziecka. Efekt? Kicha... Okno pokazuje się wcale nie przywiązane do widgetu - a na dodatek diabelskie eventy nadal nie działają! Użycie funkcji przeparentowania okna pomaga na osadzenie, ale eventów brak. Rozwiązanie? Ano, konstruktor klasy QMainWindow ignoruje parametr windowFlags, wstawiając tam na sztywno Qt::Window, dlatego trzeba: i... nagle wszystko działa! Zarówno osadzenie okna w widgecie, jak i eventy Pozostaje tylko przenieść resource'y z aplikacji dziecka. Oczywiście, dla porządku, jeśli ktoś się nie domyśla, takiemu osadzonemu oknu trzeba mówić, kiedy i jak ma zmieniać swój rozmiar: w aplikacji nadrzędnej definiujemy: i wszystko śmiga, jak należy Oczywiście, nadal pozostaje otwarte pytanie, co zrobić, gdy do dyspozycji mamy tylko exeka, którego chcemy osadzić - tu nadal problemu nie rozgryzłem. Trzeba się wystrzegać osadzania w ten sposób aplikacji qtowych Powodzenia! Continue reading "Osadzanie aplikacji Qt wewnątrz aplikacji Qt" Total Commander i narzędzie do porównywania plikówThursday, August 4. 2011Total Commander umożliwia wiele różnych ciekawych rzeczy W katalogu Config instalacji Total Commandera odnajdujemy plik tcmdpp.ini, a w niej sekcję Configuration. Dodajemy wpis: [Configuration] Zapisujemy i restartujemy Total Commandera. Od tej pory możemy używać naszego ulubionego differa Windows? Grep? FindStr!Tuesday, July 12. 2011Ileż to razy się zdarzyło, że człowiek wymyśla koło od nowa... coś takiego właśnie przeżyłem dzisiaj. Obrabiając dłuuugi plik logów na maszynie windowsowej (Win7x64) zacząłem szukać natywnej implementacji grepa, aby sobie uprościć robotę. Zamiast tego, przeżyłem szok odkrywając, że Windows ma już swojego własnego "grepa" - nazywa się FindStr. Narzędzie owo oferuje funkcjonalność zbliżoną do jego linuksowego odpowiednika i muszę przyznać, że miło mi się dzisiaj z nim pracowało. Poniżej lista przełączników, aby uzmysłowić Wam jego możliwości: Tak więc: nie szukajmy już grepa dla Windowsa - on już tam jest Czas przemian...Monday, April 11. 2011Dawno nie pisałem... a tu zmiany, zmiany, zmiany! Od początku. W dniu 18 grudnia zeszłego roku zakupiłem... elektroniczny papieros. Z mocnym postanowieniem, że tym razem, przy takim wsparciu, uda mi się w końcu rzucić papierosy "analogowe", jak to się mówi w środowisku użytkowników tego typu urządzeń. Godzina 14 z minutami, parking galerii handlowej, w samochodzie rozpakowuję sprzęt, ładuję kartridż płynem (liquidem) i... pierwszy buch. Panie i Panowie: tak skończyłem ze śmierdzielami Zmiana kolejna: po ponad 6 latach pracy w mvb, zmieniam miejsce zatrudnienia A poza tym?... poza tym, idzie wiosna Metro 2034 - wrażenia po lekturze książkiSunday, December 12. 2010 W końcu udało mi się na chwilę oderwać od rzeczywistości pełnej zajęć i zanurzyłem się w kolejnej powieści Dymitra Głukchowskiego pt. Metro 2034.Wrażenie nr 1: jasnym jest, że do lektury Metro 2034 należy przystępować koniecznie po przeczytaniu poprzedniczki. Dlaczego? Nie dlatego, że jet tu kilka nawiązań do fabuły Metro 2033, bo z tym czytelnik da sobie radę - lecz dlatego, że w drugiej powieści brak tak obszernych opisów świata. Autor założył dość jasno, że czytelnik świat i realia w nim panujące już zna i skupił się wyraźnie na samych obecnych problemach. A jakie to problemy? Przychodzi mi tutaj na myśl jeden z najlepszych autorów sf - Philip K. Dick i jego ulubiony temat: kim jesteśmy? Kim jest człowiek? Dokąd zmierzamy? Lekturę Metro 2034 szczerze polecam - choć zapaleńców akcji ostrzegam, że to może być pozycja nie dla nich. To książka przeznaczona raczej dla tych lubiących wspomniane wyżej rozterki i rozważania duchowe. Dodatkowo, pisząc z perspektywy pół dnia po zakończeniu lektury, myślę, że Głukchowski zgrabnie napisał zakończenie, pozostawiając dość dużą swobodę w jego interpretacji samemu czytelnikowi. Warto przeczytać. Transparent Label w C# - przeźroczyste napisy.Monday, October 4. 2010Tworząc interfejs aplikacji przeznaczonej pod ekrany dotykowe, w pewnym momencie okazało się, że muszę opracować własną klasę okien typu MessageBox. Wszystko fajnie, działa. Zachciało mi się wypełniać tło tych okienek fajnym gradientem Co zrobić? Okazuje się, że w kodzie tworzenia okienka kontrolki wystarczy dodać flagę WS_EX_TRANSPARENT do domyślnego zestawu styli. Jak? Stworzymy nową kontrolkę, dziedziczącą po Label. Dodajemy do projektu nową klasę, dodajemy klauzulę using System.Windows.Forms; i wklejamy kod klasy: //! Klasa kontrolki TransparentLabel Zapisujemy i przechodzimy do formy, nad którą pracujemy. Po rozwinięciu Toolboksa widzimy, że na samej górze pojawiła się nasza nowa kontrolka TransparentLabel. Wstawiamy ją na formę - i cieszymy się labelką z przeźroczystym tłem Happy coding! ![]() Wyliczanie CRC-16 w C#Tuesday, September 28. 2010Spędziłem nad zagadnieniem wyliczania sumy kontrolnej CRC-16 z ciągu bajtów dobrą chwilę czasu, dlatego poniżej przedstawiam rozwiązanie, aby pozostali nie musieli już się w to bawić... Wybrałem wersję szybką, z użyciem statycznej tablicy potęg. Dlatego też na początku definiujemy ową tablicę: private ushort[] crctable = new ushort[256] {Dzięki takiej tablicy, sama funkcja wyliczająca przedstawia się już banalnie i działa rewelacyjnie szybko: //! Wyliczenie sumy kontrolnej CRC16 I to w zasadzie wszystko! Przykładowe użycie funkcji może wyglądać tak: ramka = "" + (char)0x01 + (char)0x0C + (char)0x14 + klucz + (char)0x00; // C_LoadKeyToDKB u3shaders dla S.T.A.L.K.E.R.: Cień CzarnobylaMonday, September 27. 2010u3shaders 2.1 to zestaw shaderów, zarówno dla DirectX8 jak i DirectX9 (odpowiednio opcje "oświetlenie statyczne" i "oświetlenie dynamiczne") do gry S.T.A.L.K.E.R.: Cień Czarnobyla. Prace nad shaderami rozpocząłem pod koniec 2009 roku i z przerwami kontynuuję do dziś. Najnowsza wersja, u3shaders 2.1, wprowadza w stosunku do wersji 2.0 poprawkę w algorytmie wyliczania cieni, naprawiając najpoważniejszy błąd całego zestawu. Jeśli ktoś nie wie, do czego służą shadery, wyjaśniam: zmieniają sposób wyświetlania obrazu. W tym przypadku, u3shaders wprowadza grę Stalker w świat realistycznej grafiki. Oczywiście, warto zainwestować również te kilkaset megabajtów w jakieś sensowne tekstury... ![]() ![]() Link do pobrania oraz dyskusję można znaleźć na forum stalker.pl.
(Page 1 of 16, totaling 125 entries)
» next page
View as PDF: This month | Full blog powered by Serendipity |
QuicksearchLinkiNiniejsza strona nie jest moim jedynym miejscem w sieci... tutaj składuję to, co nie mieści się w ramach pozostałych innych moich miesc (głównie blogów o tematyce mobilnej). Zapraszam do odwiedzin: KategorieBlog Administration |



