01/10/2018, 14:27 
               
            Giúp mình giải thích một số vấn đề trong QT với

Các bác trả lời giúp e mấy thắc mắc sau với ạ:
- Trong file mainwindow.h, em thấy có 2 class MainWindow khác nhau. Điều này đúng không ạ? Và nếu đúng thì nhiệm vụ/ mục đích của 2 class cùng tên này là gì ?
- Trong C++. e nhớ là tên namespacephải là duy nhất. Vậy sao trong 2 fileui_mainwindow.hvàmainwindow.hđều có cùng 1namespacce Uivà có chung classMainWindow, hơn nữa khictrl+clickvào classMainWindowở file .h thì nó nhảy về đúng cái class nằm trongnamespace Uicủa fileUi_mainwindow.h. Như vậy chẳng phải 2 file header cùng định nghĩa 1 namespace sao ?
- Ở file mainwindow.cppcó con trỏui (ui = new UI::MainWindow)được sinh ra khiconstructorđược gọi, cái con trỏ này nó làm nhiệm vụ gì ? trỏ tới đâu? quản lý cái gì ? Mà sao nó không truy xuất tới được các thuộc tính của lớpmainwindow? Còn con trỏthisthì lại truy xuất được tới các thuộc tính củamainwindow class?thisnày nó đại diện cho cái gì ?
 Mình có tham khảo link https://stackoverflow.com/questions/24855666/qt-ui-namespace
 Nhưng đọc xong vẫn mông nung, tưởng chửng mờ mờ hiểu ra cái gì đó ^^!
 Mọi người ai biết chỉ dùm mình với ạ. Thanks !
            Bài liên quan
         
                
            




Đúng, 2 class này khác nhau.
Một class là
::Ui::MainWindow, 1 class là::MainWindow. Nhìn vào namespace đủ biết thằngUi::là thuộc về giao diện. Thằng còn lại là code của bạn.Đúng, namespace là duy nhất. Nhưng 1 namespace có thể có nhiều con bên trong nó. Việc các phần tử như class, function, variables,… nằm trong cùng một namespace là điều bình thường. Ở đây thằng
::MainWindownó nằm ở lớp ngoài cùng, không liên quan gì tới::Ui::MainWindow. Namespace::Uilà vùng tên được Qt compiler tự định nghĩa và generate, bạn không cần quan tâm gì tới nó cả.Lớp
::MainWindownày nó lấy::Ui::MainWindowlàm phần tử con, nó phải gọi trực tiếpthis->ui->...thì mới truy cập được các thành phần bên trong củaui. Còn việcthisgọi gì là do nó thừa kế lạiQMainWindow, và các thành phần được preprocessor trongQ_OBJECT.Bạn nên nắm chắc OOP cơ bản trong C++ (Hay bất kì ngôn ngữ OO nào khác) trước khi lao vô Qt nếu muốn làm việc tốt hơn.