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

QT namespace

3 views
Skip to first unread message

Paweł

unread,
Nov 10, 2009, 9:23:27 AM11/10/09
to
Witam wszystkich

Mam sobie kod zrobiony prez QTCreator i mam pewien problem ze
zrozumieniem jednej rzeczy.

========================
private:
Ui::MainWindow *ui;
========================

Po pierwsze, jak mozna tworzyc obiekt(ta linijka powyzej chyba tworzy
obiekt) wewnatrz klasy, nie dajac "static const".

Po drugie, jak mozna tworzyc obiekt klasy MainWindow? skoro jestesmy
wewnatrz tej klasy. Jezeli juz sie chce tworzyc cos takiego, to czy nie
powinno byc cos w rodzaju "this *ui"

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QWidget>

namespace Ui {
class MainWindow;
}

class MainWindow : public QWidget {
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();

protected:
void changeEvent(QEvent *e);

private:
Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

Paweł

unread,
Nov 10, 2009, 9:32:56 AM11/10/09
to
Sorry, nie tu chcialem wyslac ;-). Jakby sie jednak ktos znalazl, kto by
dpowiedzail, to bede wdzieczny. Jak cos, to wyslalem to na grupe
pl.comp.lang.c

ArO

unread,
Nov 10, 2009, 11:43:29 AM11/10/09
to
On 10 Lis, 15:23, Paweł <ppf9@USUN_TOpoczta.fm> wrote:
> Witam wszystkich
>
> Mam sobie kod zrobiony prez QTCreator i mam pewien problem ze
> zrozumieniem jednej rzeczy.
>
> ========================
> private:
>      Ui::MainWindow *ui;
> ========================

specjalista od C nie jestem... ale na chlopski rozum to jest wskaznik
na obiekt, a nie sam obiekt :)

Mateusz Loskot

unread,
Nov 10, 2009, 10:09:24 PM11/10/09
to
Paweďż˝ wrote:
> Witam wszystkich
>
> Mam sobie kod zrobiony prez QTCreator i mam pewien problem ze
> zrozumieniem jednej rzeczy.
>
> ========================
> private:
> Ui::MainWindow *ui;
> ========================
>
> Po pierwsze, jak mozna tworzyc obiekt(ta linijka powyzej chyba tworzy
> obiekt) wewnatrz klasy,

To nie jest obiekt, ale *wska�nik* na obiekt klasy MainWindow kt�ra
zdefiniowana jest w przestrzeni nazw Ui.

> nie dajac "static const".


A co ma piernik do wiatraka?

struct A {};
struct B
{
A a; // obiekt klasy A
void foo();
};

> Po drugie, jak mozna tworzyc obiekt klasy MainWindow? skoro jestesmy
> wewnatrz tej klasy. Jezeli juz sie chce tworzyc cos takiego, to czy nie
> powinno byc cos w rodzaju "this *ui"
>
> #ifndef MAINWINDOW_H
> #define MAINWINDOW_H
>
> #include <QWidget>
>
> namespace Ui {
> class MainWindow;
> }
>
> class MainWindow : public QWidget {
> Q_OBJECT
> public:
> MainWindow(QWidget *parent = 0);
> ~MainWindow();
>
> protected:
> void changeEvent(QEvent *e);
>
> private:
> Ui::MainWindow *ui;
> };
>
> #endif // MAINWINDOW_H

MainWindow a Ui::MainWindow two dwie r�ne klasy.

Pozdrawiam
--
Mateusz Loskot, http://mateusz.loskot.net
Charter Member of OSGeo, http://osgeo.org

Paweł

unread,
Nov 11, 2009, 8:06:28 AM11/11/09
to
Mateusz Loskot wrote:
>> Po pierwsze, jak mozna tworzyc obiekt(ta linijka powyzej chyba tworzy
>> obiekt) wewnatrz klasy,
>
> To nie jest obiekt, ale *wska�nik* na obiekt klasy MainWindow kt�ra
> zdefiniowana jest w przestrzeni nazw Ui.
>
>> nie dajac "static const".
>
>
> A co ma piernik do wiatraka?
>
> struct A {};
> struct B
> {
> A a; // obiekt klasy A
> void foo();
> };
OK, tutaj, to rzeczywiscie moja nieuwaga. Za krotko chyba spalem ;), ale
co do tego drugiego, to nadal nie rozumie za bardzo.


>
>> Po drugie, jak mozna tworzyc obiekt klasy MainWindow? skoro jestesmy
>> wewnatrz tej klasy. Jezeli juz sie chce tworzyc cos takiego, to czy nie
>> powinno byc cos w rodzaju "this *ui"
>>
>> #ifndef MAINWINDOW_H
>> #define MAINWINDOW_H
>>
>> #include <QWidget>
>>
>> namespace Ui {
>> class MainWindow;
>> }
>>
>> class MainWindow : public QWidget {
>> Q_OBJECT
>> public:
>> MainWindow(QWidget *parent = 0);
>> ~MainWindow();
>>
>> protected:
>> void changeEvent(QEvent *e);
>>
>> private:
>> Ui::MainWindow *ui;
>> };
>>
>> #endif // MAINWINDOW_H
>
> MainWindow a Ui::MainWindow two dwie r�ne klasy.

A moglbys cos wiecej o tym powiedziec, bo chyba nie lape.
Skoro to sa dwa rozne obiekty, to gdzie to MainWindow z namespace
zostalo zadeklarowane? Ja myslalem, ze to jest wlasnie MainWindow
deklarowane w miejscu "class MainWindow : public QWidget {".
Czy to namespace, to nie dziala podobnie do klas, czy struktur, ktore
enkapsuluja jakies dane?


Pozdrawiam
Paweďż˝

Mateusz Loskot

unread,
Nov 11, 2009, 9:14:55 AM11/11/09
to
"Paweďż˝" <ppf9@USUN_TOpoczta.fm> wrote in message
news:hdecsr$ldu$1...@inews.gazeta.pl...
> Mateusz Loskot wrote:

>> "Paweďż˝" <ppf9@USUN_TOpoczta.fm> wrote:
>>> Po drugie, jak mozna tworzyc obiekt klasy MainWindow? skoro jestesmy
>>> wewnatrz tej klasy. Jezeli juz sie chce tworzyc cos takiego, to czy nie
>>> powinno byc cos w rodzaju "this *ui"
>>>
>>> #ifndef MAINWINDOW_H
>>> #define MAINWINDOW_H
>>>
>>> #include <QWidget>
>>>
>>> namespace Ui {
>>> class MainWindow;
>>> }
>>>
>>> class MainWindow : public QWidget {
>>> Q_OBJECT
>>> public:
>>> MainWindow(QWidget *parent = 0);
>>> ~MainWindow();
>>>
>>> protected:
>>> void changeEvent(QEvent *e);
>>>
>>> private:
>>> Ui::MainWindow *ui;
>>> };
>>>
>>> #endif // MAINWINDOW_H
>>
>> MainWindow a Ui::MainWindow two dwie r�ne klasy.
>
> A moglbys cos wiecej o tym powiedziec, bo chyba nie lape.
> Skoro to sa dwa rozne obiekty, to gdzie to MainWindow z namespace zostalo
> zadeklarowane?

Klasa w przestrzeni Ui jest generowana przez uic, doczytaj wi�cej w manualy
Qt

http://doc.trolltech.com/4.5/porting4-designer.html

> Ja myslalem, ze to jest wlasnie MainWindow deklarowane w miejscu "class
> MainWindow : public QWidget {".

Nie jest. To tylko koincydencja nazw - MainWindow.

> Czy to namespace, to nie dziala podobnie do klas, czy struktur, ktore
> enkapsuluja jakies dane?

Dzia�a podobnie, ale inaczej. Poleci�bym co� do C++

http://pl.cpp.wikia.com/wiki/FAQ#.22Jak.C4.85_ksi.C4.85.C5.BCk.C4.99_polecacie.3F.22

Pozdrawiam
--
Mateusz Loskot, http://mateusz.loskot.net

pl.comp.lang.c FAQ: http://pl.cpp.wikia.com/wiki/FAQ
C++ FAQ: http://parashift.com/c++-faq-lite

Paweł

unread,
Nov 11, 2009, 7:42:36 PM11/11/09
to
Wygl�da na to, �e b�d� musia� si� bli�ej przyjrze� tym bebechom QT.


>
>> Czy to namespace, to nie dziala podobnie do klas, czy struktur, ktore
>> enkapsuluja jakies dane?
>
> Dzia�a podobnie, ale inaczej. Poleci�bym co� do C++
>
> http://pl.cpp.wikia.com/wiki/FAQ#.22Jak.C4.85_ksi.C4.85.C5.BCk.C4.99_polecacie.3F.22

Skoro mi ju� polecasz ksi��ki, to mia�e� mo�e styczno�� z ksi��k�
"Podstawy j�zyka C++" -
http://www.wnt.pl/product.php?action=0&prod_id=282&hot=1
Mam do niej dost�p i chcia�em si� spyta�, czy warta jest ona czytania? w
por�wnaniu do Symfonii C++(tej starej i nowej, czyli wersji Standard) i
Pasjii C++.

Mateusz Loskot

unread,
Nov 12, 2009, 7:32:59 AM11/12/09
to
"Paweďż˝" <ppf9@USUN_TOpoczta.fm> wrote in message
news:hdflmi$80$1...@inews.gazeta.pl...

> Skoro mi ju� polecasz ksi��ki, to mia�e� mo�e styczno�� z ksi��k�
> "Podstawy j�zyka C++" -
> http://www.wnt.pl/product.php?action=0&prod_id=282&hot=1
> Mam do niej dost�p i chcia�em si� spyta�, czy warta jest ona czytania?

Nie czyta�em jej, ale �ledz� inne �rod�a autorstwa Lippman'a
wi�c og�lnie poleci�bym go jako autora. Co do w/w ksi��ki
konkretnie, to mo�e ACCU review pomo�e:

http://accu.org/index.php?module=bookreviews&func=search&rid=696
http://accu.org/index.php?module=bookreviews&func=search&rid=504

i to r�wnie�:

http://www.angelikalanger.com/Articles/Reviews/LippmanPrimer/review.htm

0 new messages