QT Creator - wskaźnik *ui na liście inicjalizacyjnej konstruktora MainWindow

Odpowiedz Nowy wątek
2014-02-06 13:17

Rejestracja: 6 lat temu

Ostatnio: 5 lat temu

0

Witam!

Jestem początkujący...

Zacząłem pracę z QT Creatorem i mam pytanie odnośnie klasy MainWindow, a raczej listy inicjalizacyjnej jej konstruktora.

Na liście tej widzimy m.in. inicjalizację składnika tej klasy *ui (wskaźnika) operatorem new z jawnym wywołaniem konstruktora.

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;            //SKŁADNIK - WSKAŹNIK DO POKAZYWANIA NA OBIEKT KLASY MainWindow  
};

#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)            //INICJALIZACJA ui JAWNYM WYWOŁANIEM KONSTRUKTORA
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

Czy jawnie wywołując konstruktor MainWindow w liście inicjalizacyjnej inicjujący wskaźnik *ui nie powinno dojść do błędu? Wydaje mi się, że powinno dojść do zapętlenia...
Czy użyte przestrzenie nazw (Ui::MainWindow) eliminują ten problem???
Jestem początkujący, przepraszam jeżeli moje pytanie jest śmieszne... czy użyte przestrzenie nazw (Ui::MainWindow) eliminują ten problem???

Proszę o wytłumaczenie

edytowany 2x, ostatnio: farmer, 2014-02-06 13:19

Pozostało 580 znaków

2014-02-06 15:19

Rejestracja: 10 lat temu

Ostatnio: 5 godzin temu

2

Jak spojrzysz w kod wygenerowany przez Qt Designer'a to zauwayżysz, że wszystko tam znajduje się w przestrzeni nazw UI. Czyli inicjalizujesz zmienną ui konstruktorem klasy wygenerowanej przez designer'a a nie klasy którą tutaj zamieściłeś.


Pozostało 580 znaków

2014-02-08 00:21

Rejestracja: 6 lat temu

Ostatnio: 6 lat temu

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0