• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Co oznacza napis pomiędzy "private" a ":" w c++?

Object Storage Arubacloud
0 głosów
242 wizyt
pytanie zadane 18 grudnia 2020 w C i C++ przez Marcinnok Użytkownik (780 p.)

Witam

Mam pytanie co oznacza napis pomiędzy ustawieniem dostępu do elementu (np. private) a znakiem ":"

Znalazłem taki kod w mojej aplikacji Qt:

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void on_przycisk_clicked();

    void on_przyciskMenu_triggered();

private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

Co oznacza "private slots:"?

Czy to jest składnia Qt czy można tak robić w zwykłym c++?

Jeśli można to jak tego używać i co to znaczy.

Dziękuje za wszystkie odpowiedzi

2 odpowiedzi

+1 głos
odpowiedź 18 grudnia 2020 przez Bondrusiek Maniak (61,370 p.)

Cześć,

slots oraz signals są to specjalne słowa dla Qt. moc(meta object compiler) używa ich do wykonywania połączeń sygnał=>slot. Aby wykorzystywać taki mechanizm klasa musi dziedziczyć po QObject(lub jego potomka) mieć dodane makro Q_OBJECT

Definicja Q_OBJECT( jest w qobjectdefs.h )

#define Q_OBJECT \ 
public: \     // skipped details     
static const QMetaObject staticMetaObject; \  
virtual const QMetaObject *metaObject() const; \
virtual void *qt_metacast(const char *); \     
virtual int qt_metacall(QMetaObject::Call, int, void **); \     
QT_TR_FUNCTIONS \ 
private: \     // skipped details  
qt_static_metacall(QObject *, QMetaObject::Call, int, void **);

oraz definicje sygnału oraz slotu:

#define slots 
#define signals public 

Jak widać slots jest pusty więc możesz zadeklarować jako

public slots:
protected slots:
private slots:

i używać jak każdą funkcję składową lub podpiąć do sygnału. Natomiast sygnały zawsze są publiczne i nie należy ich definiować. Ich dostępność jest publiczna gdyż używa się ich do połączeń pomiędzy obiektami.

0 głosów
odpowiedź 18 grudnia 2020 przez Kabuuz Bywalec (2,820 p.)
To jest część Qt: https://doc.qt.io/qt-5/signalsandslots.html

Sluzy np. do tego żeby za pomocą przycisku wywołać inną metodę
komentarz 18 grudnia 2020 przez Marcinnok Użytkownik (780 p.)
Mógłbym prosić o szczegółowe wyjaśnienie?

jak używać private jakas_nazwa:?

Dlaczego to jest wymagane do wywołania innej metody?
komentarz 18 grudnia 2020 przez adrian17 Ekspert (345,160 p.)

jak używać private jakas_nazwa:?

nie ma "private jakas_nazwa". "private slots" to jest rozszerzenie dodane przez Qt. Są tylko dla sygnałów i slotów, nie ma żadnych innych.

Mógłbym prosić o szczegółowe wyjaśnienie?

Polecam przeczytać podlinkowany artykuł, wyjaśnia dokładnie do czego to jest.

komentarz 18 grudnia 2020 przez Marcinnok Użytkownik (780 p.)
Ha mój błąd.

Tak, jestem w trakcie czytania tego artykuły.

Jest jeden problem: Otóż nie do końca rozumiem w pełni budowę sygnałów i slotów.

Części kodu są pisane wyrywkowo, nawet bez podania gdzie co jest.

Czy mógłbym prosić o jakiś przykład, prostą implementacje?

Podobne pytania

0 głosów
1 odpowiedź 2,323 wizyt

92,589 zapytań

141,439 odpowiedzi

319,697 komentarzy

61,974 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...