(91) 350-9520 support@omarine.org M-F: 7 AM - 7 PM; Weekends: 9 AM - 5 PM

Phát triển ứng dụng- đối tượng xuyên thời gian

Trong Qt có một đối tượng có thể lưu giữ thuộc tính của nó qua phiên làm việc, kể cả sau khi tắt máy. Đó là đối tượng QSettings. Về ý nghĩa có phần triết lý, đối tượng này tồn tại xuyên thời gian. Đối tượng này có thể được áp dụng để lưu giữ trạng thái của cửa sổ chương trình.

QSettings settings(“QtProject”, “Application Example”);

QPoint pos = settings.value(“pos”, QPoint(200, 200)).toPoint();

QSize size = settings.value(“size”, QSize(400, 400)).toSize();

resize(size);

move(pos);

Dòng đầu tiên của đoạn mã trên thiết lập một đối tượng settings của lớp Qsettings với hai tham số khởi tạo là hai xâu kí tự “QtProject” và “Application Example” để nhận dạng đối tượng.

QPoint pos = settings.value(“pos”, QPoint(200, 200)).toPoint();

QPoint là lớp đối tượng vị trí tọa độ với hai tọa độ x và y. Thuộc tính value của đối tượng settings là một cấu trúc dạng từ điển với các thành phần khóa=giá trị. Đối tượng QPoint(200, 200) được khởi tạo mặc định với x=200, y=200, đối tượng này là giá trị của khóa “pos”. Thuộc tính value có kiểu là Qvariant được chuyển đổi sang kiểu Qpoint bởi hàm thành phần toPoint()

QSize size = settings.value(“size”, QSize(400, 400)).toSize();

Đối tượng size(kích cỡ) của lớp QSize được gán giá trị, phân tích tương tự như đối với đối tượng lớp QPoint.

Các đoạn mã trên sẽ được đặt trong hàm thiết lập của đối tượng lớp cửa sổ chính MainWindow::MainWindow(). resize(size) và move(pos) là các hàm thành phần của MainWindow nhằm khởi tạo thiết lập vị trí và cỡ của cửa sổ chính khi chương trình mới khởi động.

Khi chương trình đi tới kết thúc trong sự kiện MainWindow::closeEvent, đối tượng settings lại được gọi với các hàm thành phần đặt giá trị setValue

QSettings settings(“QtProject”, “Application Example”);

settings.setValue(“pos”, pos());

settings.setValue(“size”, size());

pos() và size() là các hàm thành phần của MainWindow, lấy vị trí và cỡ hiện hành của cửa sổ chính.

Trong lập trình Windows chúng ta cũng có thể lưu giữ được trạng thái chương trình như thế nhưng phải tạo riêng một tệp cấu hình. Đây được coi là cách làm thủ công, trong khi đối tượng xuyên thời gian được thực hiện tự động, tăng năng suất công việc rất nhiều. Chính vì thuận tiện như vậy, nó mở ra một con đường phát triển xuyên thời gian.

Advertisements

Gửi phản hồi

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.

%d bloggers like this: