Câu trả lời:
A QWidget
là lớp cơ sở cho tất cả các lớp có thể vẽ được trong Qt. Bất kỳ QWidget
lớp dựa trên cơ sở nào cũng có thể được hiển thị dưới dạng cửa sổ bằng cách hiển thị nó khi nó không có cha.
A QDialog
dựa trênQWidget
, nhưng được thiết kế để hiển thị dưới dạng cửa sổ. Nó sẽ luôn xuất hiện trong một cửa sổ và có các chức năng để làm cho nó hoạt động tốt với các nút thông thường trên hộp thoại (chấp nhận, từ chối, v.v.).
QMainWindow
được thiết kế xung quanh các nhu cầu thông thường đối với một cửa sổ chính. Nó có các vị trí được xác định trước cho thanh menu, thanh trạng thái, thanh công cụ và các widget khác. Nó không có bất kỳ phụ cấp tích hợp nào cho các nút tương tự QDialog
.
QMainWindow
thay vì chỉ các lớp cơ sở QWidget
là QMainWindow
có QDockWidget
sự ủng hộ trong khi QWidget
một mình không
QWidget : là một lớp cơ sở cho tất cả các phần tử GUI khác trong mô-đun QtWidgets. Nó có thể tự tạo thành một cửa sổ hoặc là một phần của QLayout, hoặc chỉ là một thành viên của hệ thống phân cấp cha-con.
QDialog : thường được sử dụng để - ngạc nhiên! - hiển thị hộp thoại tạm thời khi người dùng yêu cầu nhập.
QMainWindow : là một lớp tiện lợi có thể được sử dụng làm cửa sổ chính của ứng dụng của bạn. Nó có một số tính năng hay được tích hợp sẵn: thanh trạng thái, thanh công cụ và thanh menu