Q4之保存窗体状态
来源:互联网 发布:斗鱼抢鱼丸软件 编辑:程序博客网 时间:2024/05/17 14:15
在实际的运用过程中,常需要应用程序能保存程序的状态以及用户的设置,如应用程序显示的大小,位置,背景颜色或用户设置的参数等信息,以便在下次运行程序时,能保持上次关闭的状态。
在Qt的使用过程中,我们使用Qsetting来保存程序的状态。使得当用户再次打开时,窗体仍然可以呈现半闭时的状态。
下面我举一个简单的例子加以说明:
贴上代码:
setting.h:
#ifndef SETTINGS_H#define SETTINGS_H#include <QDialog>class QPushButton;class QLabel;class QTextEdit;class Settings : public QDialog{ Q_OBJECTpublic: Settings(); QLabel *label; QPushButton *colorBtn; QTextEdit *edit; void readSettings(); void writeSettings(); protected: void closeEvent(QCloseEvent *); public slots: void slotColor();};#endif // SETTINGS_H
setting.cpp:
#include "settings.h"#include <QtGui>Settings::Settings(){ setWindowTitle("Settings"); label = new QLabel; label->setText("Setting Test"); colorBtn = new QPushButton; colorBtn->setText("Select Color"); edit = new QTextEdit; QGridLayout *layout = new QGridLayout(this); layout->addWidget(label,0,0); layout->addWidget(colorBtn,0,1); layout->addWidget(edit,1,0,1,2); readSettings(); connect(colorBtn, SIGNAL(clicked()), this, SLOT(slotColor()));}voidSettings::slotColor(){ QColor color = QColorDialog::getColor (Qt::blue); if(color.isValid()) { QPalette p = label->palette();p.setColor(QPalette::Normal,QPalette::WindowText,color);label->setPalette(p); }}void Settings::readSettings(){ QSettings setting("MyPro","settings"); setting.beginGroup("Dialog"); QPoint pos = setting.value("position").toPoint(); QSize size = setting.value("size").toSize(); setting.endGroup(); setting.beginGroup("Content"); QColor color = setting.value("color").value<QColor>(); QString text = setting.value("text").toString(); setting.endGroup(); move(pos); resize(size); QPalette p = label->palette(); p.setColor(QPalette::Normal,QPalette::WindowText,color); label->setPalette(p); edit->setPlainText(text);}voidSettings::writeSettings(){ QSettings setting("MyPro","settings"); setting.beginGroup("Dialog"); setting.setValue("position",pos()); setting.setValue("size",size()); setting.endGroup(); setting.beginGroup("Content"); setting.setValue("color",label->palette().color(QPalette::WindowText)); setting.setValue("text",edit->toPlainText()); setting.endGroup();}voidSettings::closeEvent(QCloseEvent *e){ writeSettings();}
settting.pro:
####################################################################### Automatically generated by qmake (2.01a) ?? ?? 10 23:13:13 2008######################################################################TEMPLATE = appTARGET = DEPENDPATH += .INCLUDEPATH += .# InputHEADERS += settings.hSOURCES += main.cpp settings.cpp
main.cpp:
#include <QApplication>#include "settings.h"int main(int argc, char *argv[]){ QApplication app(argc,argv); Settings *s = new Settings(); s->show(); return app.exec();}
点击"select color"按钮,选择一种颜色,
如下:
再次打开,还是显示关闭时的状态。
- Q4之保存窗体状态
- Q4
- Q4
- IOS之保存登录状态
- qt之坐标系、状态的保存
- android之生命周期onSaveInstanceState()状态保存
- Android基础之状态保存与恢复
- Android学习之保存 Activity 的状态
- Activity 之 值保存、状态恢复
- github之保存当前状态git stash
- 保存 Activity 状态之——onSaveInstanceState()
- 状态保存
- 状态保存
- MFC SDI 中 通过注册表保存当前窗体的 显示状态位置
- 窗体触发事件之焦点以及状态转换
- 窗体属性保存器
- 保存Java程序状态及设置之Properties文件
- boost::serialization库之对象状态的保存
- Linux虚拟机和arm开发板间的NFS服务配置
- 从程序员到技术总监,分享10年开发经验
- Ubuntu下设置轮换背景
- C++开发者的VS2010(二)—— Lambda 表达式
- joj 1329 二叉树
- Q4之保存窗体状态
- (2011.10.28)汇编_王爽_第六章_学习小结
- 接个手柄,意外发现Linux竟然能听懂它的话
- oracle学习笔记4
- onCreateOptionsMenu中 图标,文字创建
- 一般选择问题
- 记录昨天的面试
- js 获取鼠标的位置
- sql server 2005系统数据库移动