2010-11-17 6 views
5

Xin chào Tôi đã tạo một ứng dụng bằng qt và tôi đã quản lý để lưu một số cài đặt của ứng dụng bằng QSettings.Cài đặt của ứng dụng qt bằng cách sử dụng QSettings

void DoneIt::writeSettings() 
{ 
    QSettings settings("mycompany", "RightDoneIt"); 
    settings.beginGroup("DoneIt"); 
    settings.setValue("size", size()); 
    settings.setValue("pos", pos()); 
    settings.endGroup(); 
} 

void DoneIt::readSettings() 
{ 
    QSettings settings("mycompany", "RightDoneIt"); 
    settings.beginGroup("DoneIT"); 
    resize(settings.value("size", QSize(400, 400)).toSize()); 
    move(settings.value("pos", QPoint(200, 200)).toPoint()); 
    settings.endGroup(); 
} 

Điều đó làm việc tốt với vị trí và kích thước cửa sổ. Tôi đã thêm một số tiện ích trong ứng dụng của mình bằng cách sử dụng trình thiết kế của qt và tôi cũng muốn lưu trạng thái của chúng.

Một trong những vật dụng của tôi là một nút radio và tôi gọi nó là radioButtonbnw

Làm thế nào tôi có thể tiết kiệm nước (kiểm tra hoặc không kiểm soát)?

Thực tiễn tốt nhất là gì?

Trả lời

7
  1. Đặt chúng vào QButtonGroup.
  2. Sử dụng QButtonGroup::setId để đặt Id cho từng nút radio trong nhóm này.
  3. Lưu Id của nút đã chọn nhận được theo QButtonGroup::checkedId.
  4. Lấy con trỏ của nút này bằng cách sử dụng QButtonGroup::button(id) khi khôi phục và gọi QAbstractButton::setChecked.

BTW: nếu bạn muốn lưu trạng thái hiện tại của thanh công cụ và dockwidgets của cửa sổ chính, hãy sử dụng QMainWindow::saveState.

+0

Xin vui lòng, bạn có thể chính xác hơn một chút không? lần đầu tiên tôi giao dịch với QbuttonGroup. Bạn có thể cung cấp cho tôi một số mã không? 1000 cảm ơn – Sharethefun

+0

Rất tiếc, tôi đang bận với dự án của mình và không có mã hiện có. –

+0

Không vấn đề gì :) đây là phiếu bầu và điểm của bạn :) chúc may mắn với dự án của bạn – Sharethefun