Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

jak to działa?

3 views
Skip to first unread message

twardy C

unread,
Dec 27, 2009, 7:15:15 AM12/27/09
to
jak działa ‘connect signal’ na przykład w ‟qt”?
linki? :-) nie… ale mogą być. :-)
--
qo |) CPL<=dataDPL CPL==/>=codeDPL:conform'/nc';max=CPL! AV0ID bHp
_x/ , CPL<=TSS,gateDPL CPL>=/==dest_DPL:/(jmp&nc') ,RPL!- #GP -o0o
| ng __ -- __ -- __ -- __ -- __ -- __ -- __ -- __ -x86-, EV3RY o0o
,__ -- __ -- Current/Requested/DescriptorPrivilegeLevel C/R/DPL , d4y m:#=

--- news://freenews.netfront.net/ - complaints: ne...@netfront.net ---

Bob

unread,
Dec 27, 2009, 8:14:15 AM12/27/09
to
On Dec 27, 1:15 pm, twardy C <c...@surfy.net> wrote:
> jak działa ‘connect signal’ na przykład w ‟qt”?
> linki? :-) nie… ale mogą być. :-)

Korzystając z okazji, też bym się chętnie dowiedział czegoś o tym Qt.
Ściągnąłem SDK, ale okazało się, że nie lubi mojego systemu
operacyjnego, więc musiałbym w domowym komputerku
zainstalować Linuksa albo Windows - jedno i drugie odpada.
Więc nie mogę samemu sprawdzić... A chciałem się dowiedzieć,
czy mechanizm slotów i sygnałów w Qt pozwala na podłączenie
metody z jakiejś klasy do sygnału w np. buttonie Qt,
wtedy gdy modyfikacja kodu źródłowgo owej klasy nie jest
możliwa?

Pozdrawiam.

krzysztof posluszny

unread,
Dec 27, 2009, 8:25:27 AM12/27/09
to

Użytkownik "Bob" napisał w wiadomości

Tak z czystej ciekawości jeśli nie windowsa lub linuksa ma Pan
zainstalowanego to na jakim systemie smiga pana komputer?

Bob

unread,
Dec 27, 2009, 8:36:36 AM12/27/09
to
On Dec 27, 2:25 pm, "krzysztof posluszny" <wojownik...@wp.pl> wrote:
> Tak z czystej ciekawości jeśli nie windowsa lub linuksa ma Pan
> zainstalowanego to na jakim systemie smiga pana komputer?

Problem w tym. że on nie śmiga...
Mam Windows 2000, czego mógł Pan z łatwością się dowiedzieć
sprawdzając pole X-HTTP-UserAgent w moim poście.
Podczas próby instalacji SDK Qt dostałem komunikat,
że nie działa ono na Windows 2000.
Na Windows 7 mnie nie stać...
Linuksa nie instaluję, bo jestem leniwy i mi się nie chce...

Pozdrawiam

krzysztof posluszny

unread,
Dec 27, 2009, 8:45:37 AM12/27/09
to

U�ytkownik "Bob" napisa� w wiadomo�ci

On Dec 27, 2:25 pm, "krzysztof posluszny" <wojownik...@wp.pl> wrote:
> Tak z czystej ciekawo�ci je�li nie windowsa lub linuksa ma Pan

> zainstalowanego to na jakim systemie smiga pana komputer?

Problem w tym. �e on nie �miga...
Mam Windows 2000, czego m�g� Pan z �atwo�ci� si� dowiedzie�
sprawdzaj�c pole X-HTTP-UserAgent w moim po�cie.
Podczas pr�by instalacji SDK Qt dosta�em komunikat,
�e nie dzia�a ono na Windows 2000.
Na Windows 7 mnie nie staďż˝...
Linuksa nie instalujďż˝, bo jestem leniwy i mi siďż˝ nie chce...

Bez pracy nie ma ko�aczy. Instalacja linuksa to znowu nie taka wielka
filozofia. Ja mam windowsa xp i suse 11.0. Qt pod suse smiga az mi�o. Wydaje
mi si� ze bez instalacji linuksa si� nie obejdzie:-(. Dzi�kuj� za
zaspokojenie mojej ciekawo�ci. Mi�ej niedzieli �ycz�!!

Paweł

unread,
Dec 27, 2009, 12:45:35 PM12/27/09
to
On 2009-12-27 14:14, Bob wrote:
> On Dec 27, 1:15 pm, twardy C<c...@surfy.net> wrote:
>> jak działa ‘connect signal’ na przykład w ‟qt”?
>> linki? :-) nie… ale mogą być. :-)
>
> Korzystając z okazji, też bym się chętnie dowiedział czegoś o tym Qt.
> Ściągnąłem SDK, ale okazało się, że nie lubi mojego systemu
> operacyjnego, więc musiałbym w domowym komputerku
> zainstalować Linuksa albo Windows - jedno i drugie odpada.
Biblioteka jest dostepna na wszsystkie najwazniejsze platformy(
informacje ze strony http://qt.nokia.com/ - Windows, Mac, Linux/X11,
embedded Linux, Windows CE and Symbian)

> Więc nie mogę samemu sprawdzić... A chciałem się dowiedzieć,
> czy mechanizm slotów i sygnałów w Qt pozwala na podłączenie
> metody z jakiejś klasy do sygnału w np. buttonie Qt,
> wtedy gdy modyfikacja kodu źródłowgo owej klasy nie jest
> możliwa?

zerknij sobie na post z forum
"http://forum.ubuntu.pl/showthread.php?t=81231&highlight=[qt4]+w%C4%85tki+progressbar"
niejakiego "adrian5632" wyslany dnia: "28-08-2008, 15:17" . Masz tam
bardzo prosty, ale kompletny przyklad uzycia slotow i sygnalow.

Bob

unread,
Dec 28, 2009, 7:59:53 AM12/28/09
to
On Dec 27, 6:45 pm, Paweł <ppf9@USUN_TOpoczta.fm> wrote:
> On 2009-12-27 14:14, Bob wrote:> On Dec 27, 1:15 pm, twardy C<c...@surfy.net>  wrote:
> >> jak działa ‘connect signal’ na przykład w ‟qt”?
> >> linki? :-) nie… ale mogą być. :-)
>
> > Korzystając z okazji, też bym się chętnie dowiedział czegoś o tym Qt.
> > Ściągnąłem SDK, ale okazało się, że nie lubi mojego systemu
> > operacyjnego, więc musiałbym w domowym komputerku
> > zainstalować Linuksa albo Windows - jedno i drugie odpada.

Może i tak, ale SDK nie da się zainstalować na Win 2000.

> Biblioteka jest dostepna na wszsystkie najwazniejsze platformy(

> informacje ze stronyhttp://qt.nokia.com/- Windows, Mac, Linux/X11,


> embedded Linux, Windows CE and Symbian)
>
> > Więc nie mogę samemu sprawdzić... A chciałem się dowiedzieć,
> > czy mechanizm slotów i sygnałów w Qt pozwala na podłączenie
> > metody z jakiejś klasy do sygnału w np. buttonie Qt,
> > wtedy gdy modyfikacja kodu źródłowgo owej klasy nie jest
> > możliwa?
>
> zerknij sobie na post z forum
> "http://forum.ubuntu.pl/showthread.php?t=81231&highlight=[qt4]+w%C4%85tki+progressbar"
> niejakiego "adrian5632" wyslany dnia: "28-08-2008, 15:17" . Masz tam
> bardzo prosty, ale kompletny przyklad uzycia slotow i sygnalow.

Dziękuję. Nie widzę tam jednak przykładu, który bym uznał za
kompletny.
Zadam moje pytanie w innej formie. Wiem, że w Qt można zrobić tak:

class Test : public QObject
{
Q_OBJECT;
public slots:
void do_something() const { }
};

QPushButton btn("click me");
Test t;
connect(&btn, SIGNAL(clicked()), &t, SLOT(do_something()));

A ja chcę wiedzieć czy można też tak:

class Test
{
public:
void do_something() const { }
};

QPushButton btn("click me");
Test t;
connect(&btn, SIGNAL(clicked()), &t, SLOT(do_something()));

oraz tak:

void do_something() { }

QPushButton btn("click me");
connect(&btn, SIGNAL(clicked()), SLOT(do_something()));

Pozdrawiam.

Paweł

unread,
Dec 28, 2009, 8:31:46 AM12/28/09
to
On 2009-12-28 13:59, Bob wrote:
> On Dec 27, 6:45 pm, Paweł<ppf9@USUN_TOpoczta.fm> wrote:
>> On 2009-12-27 14:14, Bob wrote:> On Dec 27, 1:15 pm, twardy C<c...@surfy.net> wrote:
>>>> jak działa ‘connect signal’ na przykład w ‟qt”?
>>>> linki? :-) nie… ale mogą być. :-)
>>
>>> Korzystając z okazji, też bym się chętnie dowiedział czegoś o tym Qt.
>>> Ściągnąłem SDK, ale okazało się, że nie lubi mojego systemu
>>> operacyjnego, więc musiałbym w domowym komputerku
>>> zainstalować Linuksa albo Windows - jedno i drugie odpada.
>
> Może i tak, ale SDK nie da się zainstalować na Win 2000.
>
Jezeli nie chce ci sie bawic w instalacje linuksa na kompie, to sprobuj
sobie skolowac jakas wirtualna maszyne typu VirtualBox, lub Vmware
Server. Z tego co mi wiadomo, to obie wersje sa darmowe, przynajmniej do
niekomercyjnego uzycia(musialbys sprawdzic jak to jest na obecna
chwile). Na takiej maszynce instalujesz sobie jakiegos ubuntu, lub
OpenSUSE i tam sobie instalujesz wszystko(SDK i QTCreator) w postaci
jednego pakietu. Nie musisz sie obawiac, ze cos uszkodzisz.

>> Biblioteka jest dostepna na wszsystkie najwazniejsze platformy(
>> informacje ze stronyhttp://qt.nokia.com/- Windows, Mac, Linux/X11,
>> embedded Linux, Windows CE and Symbian)
>>
>>> Więc nie mogę samemu sprawdzić... A chciałem się dowiedzieć,
>>> czy mechanizm slotów i sygnałów w Qt pozwala na podłączenie
>>> metody z jakiejś klasy do sygnału w np. buttonie Qt,
>>> wtedy gdy modyfikacja kodu źródłowgo owej klasy nie jest
>>> możliwa?
>>
>> zerknij sobie na post z forum
>> "http://forum.ubuntu.pl/showthread.php?t=81231&highlight=[qt4]+w%C4%85tki+progressbar"
>> niejakiego "adrian5632" wyslany dnia: "28-08-2008, 15:17" . Masz tam
>> bardzo prosty, ale kompletny przyklad uzycia slotow i sygnalow.
>
> Dziękuję. Nie widzę tam jednak przykładu, który bym uznał za
> kompletny.

Faktycznie, nie byl tam kompletny przyklad. Za szybko przelecialem to i
uznalem, ze jest tam wszystko.

> Zadam moje pytanie w innej formie. Wiem, że w Qt można zrobić tak:
>
> class Test : public QObject
> {
> Q_OBJECT;
> public slots:
> void do_something() const { }
> };
>
> QPushButton btn("click me");
> Test t;

> connect(&btn, SIGNAL(clicked()),&t, SLOT(do_something()));


>
> A ja chcę wiedzieć czy można też tak:
>
> class Test
> {
> public:
> void do_something() const { }
> };
>
> QPushButton btn("click me");
> Test t;

> connect(&btn, SIGNAL(clicked()),&t, SLOT(do_something()));


>
> oraz tak:
>
> void do_something() { }
>
> QPushButton btn("click me");
> connect(&btn, SIGNAL(clicked()), SLOT(do_something()));

Wg mojej wiedzy, to wszystkie klasy ktore maja obslugiwac sygnaly i
sloty, musza miec wklepane makro "Q_OBJECT".

Po drugie, to przy deklaracji slota, trzeba go poprzedzic informacja, ze
to jest slot, czyli:
private slots:
void slot();

Po zdefiniowaniu takiego slota, mozna go potemm uzywac jako slot, a
takze jako zwykla funkcje, czyli nie tylko, gdy wywola go jakis sygnal.

Jak znajde troche czasu, to sprobuje ci zrobic jakis prosciutki i
kompletny przyklad slotow i sygnalow, ale nie moge ci tego
zagwarantowac, bo mam sporo swojej roboty :/.

Jak ktos jest w tym bardziej zorientowany, to niech mnie poprawi.

Mariusz Marszałkowski

unread,
Dec 28, 2009, 8:40:31 AM12/28/09
to

> jak działa ‘connect signal’ na przykład w ‟qt”?
> linki? :-) nie… ale mogą być. :-)

Cały bajer polega (a przynajmniej ma polegać) na tym,
że nie wiedząc jak to działa łatwo się z tego korzysta.

Nie wiem czy warto wnikać w szczegóły implementacyjne,
osobiście nie znam ich. Jakby ktoś chciał się z tym zapoznać,
to nie wiem... może na początek przeczytać kod wygenerowany
przez meta object compiler? Na pierwszy rzut oka ten kod nie
wygląda strasznie.

Prawdopodobnie dział to tak, że meta object compiler analizując
makra w plikach nagłówkowych dopisuje najzwyklejszy kod w C++
w którym to są wywoływane funkcje obsługi sygnałów. Czyli mechanizm
jeszcze prostszy niż wywołania wirtualne. Ale nie wiem czy tak
jest, to tylko moje domysły :)

Pozdrawiam

thearti

unread,
Jan 1, 2010, 5:28:37 PM1/1/10
to
On 28 Gru 2009, 13:59, Bob <robert3.1...@gmail.com> wrote:
> A ja chcę wiedzieć czy można też tak:
>
> class Test
> {
> public:
>         void do_something() const { }
>
> };
>
> QPushButton btn("click me");
> Test t;
> connect(&btn, SIGNAL(clicked()), &t, SLOT(do_something()));

Nie mozna. Klasa Test musi dziedziczyc po QObject oraz posiadac makra,
ktorych uzywa "moc" do generowania kodu (Q_OBJECT i signals,
slots, ...)

Ryszard

unread,
Jan 7, 2010, 9:50:04 AM1/7/10
to

> Mo�e i tak, ale SDK nie da si� zainstalowa� na Win 2000.

Wez troche starsze. QT 4.5.2 dziala na W2000 i QtCreator 1.1.8 tez.
SDK 2009.1 chyba tez, choc nie jestem pewien.
Mozna je znalezc na ftp://ftp.qtsoftware.com/.

0 new messages