当前位置: 首页 > news >正文

企业网站剖析wordpress中文破解主题下载

企业网站剖析,wordpress中文破解主题下载,网站开发流程属于制作与开发,中国最新军事新闻50字概述 QSettings类提供了一种持久的、与平台无关的应用程序设置存储功能。 用户通常期望一个应用能在不同会话中记住其设置#xff08;窗口大小和位置#xff0c;选项等#xff09;。在Windows上#xff0c;这些信息通常存储在系统注册表中#xff1b;在macOS和iOS上…概述 QSettings类提供了一种持久的、与平台无关的应用程序设置存储功能。 用户通常期望一个应用能在不同会话中记住其设置窗口大小和位置选项等。在Windows上这些信息通常存储在系统注册表中在macOS和iOS上存储在属性列表文件中在Unix系统上由于缺乏标准许多应用程序包括KDE应用程序使用INI文本文件。 QSettings是对这些技术的抽象在可移植性的基础上使您能够保存和恢复应用程序设置。它还支持自定义的存储格式。 QSettings的API基于QVariant允许您以最小的努力保存大多数基于值的类型如QString、QRect和QImage等。 如果您只需要一个非持久的基于内存的结构请考虑使用QMapQString, QVariant替代。 基本用法 创建QSettings对象时必须传递您的公司或组织的名称以及应用程序的名称。例如如果您的产品名称为Star Runner公司名为MySoft您应该如下构造QSettings对象 QSettings settings(MySoft, Star Runner);可以在堆上使用new或栈上创建QSettings对象。构造和销毁QSettings对象非常快速。 如果在应用程序的多个地方使用QSettings可以使用QCoreApplication::setOrganizationName()和QCoreApplication::setApplicationName()来指定组织名称和应用程序名称然后使用默认的QSettings构造函数 QCoreApplication::setOrganizationName(MySoft); QCoreApplication::setOrganizationDomain(mysoft.com); QCoreApplication::setApplicationName(Star Runner); ... QSettings settings;这里还指定了组织的互联网域。在设置了互联网域的情况下macOS和iOS会使用互联网域来标识应用程序而不是组织名称因为macOS和iOS应用程序通常使用互联网域来标识自己。如果未设置域将从组织名称派生一个虚假的域。有关详细信息请参阅下面的特定平台的注释。 QSettings存储设置。每个设置由一个QString键和一个QVariant关联该键的数据组成。使用setValue()来写入设置。例如 settings.setValue(editor/wrapMargin, 68);如果存在具有相同键的设置新值将覆盖现有值。出于效率考虑更改可能不会立即保存到永久存储中。您可以随时调用sync()来提交更改。 使用value()方法可以获取设置的值 int margin settings.value(editor/wrapMargin).toInt();如果没有指定名称的设置QSettings将返回一个空的QVariant可以转换为整数0。您可以通过向value()传递第二个参数来指定另一个默认值 int margin settings.value(editor/wrapMargin, 80).toInt();要测试给定键是否存在请调用contains()方法。要删除与键关联的设置请调用remove()方法。要获取所有键的列表请调用allKeys()方法。要删除所有键请调用clear()方法。 QVariant和GUI类型 由于QVariant是Qt Core模块的一部分因此不能提供转换函数到Qt GUI的数据类型如QColor、QImage和QPixmap。换句话说QVariant中没有toColor()、toImage()或toPixmap()等函数。 相反您可以使用QVariant::value()或qVariantValue()模板函数。例如 QSettings settings(MySoft, Star Runner); QColor color settings.value(DataPump/bgcolor).valueQColor();反向转换例如从QColor到QVariant对于QVariant支持的所有数据类型包括与GUI相关的类型都是自动的 QSettings settings(MySoft, Star Runner); QColor color palette().background().color(); settings.setValue(DataPump/bgcolor, color);使用qRegisterMetaType()和qRegisterMetaTypeStreamOperators()注册的自定义类型也可以使用QSettings进行存储。 部分和键的语法 设置键可以包含任何Unicode字符。Windows注册表和INI文件使用不区分大小写的键而macOS和iOS上的CFPreferences API使用区分大小写的键。为了避免可移植性问题请遵循以下简单规则 始终使用相同的大小写引用相同的键。例如如果在代码的某个地方将键称为text fonts请不要在其他地方将其称为Text Fonts。避免只有大小写不同的键名称。例如如果有一个名为MainWindow的键请不要使用mainwindow保存另一个键。不要在部分或键名中使用斜线‘/‘和’’)。反斜杠字符用于分隔子键见下文。在Windows上‘‘会被QSettings转换为’/’从而使它们相同。 您可以使用’/字符作为分隔符来形成具有层次结构的键类似于Unix文件路径。例如 settings.setValue(mainwindow/size, win-size()); settings.setValue(mainwindow/fullScreen, win-isFullScreen()); settings.setValue(outputpanel/visible, panel-isVisible());如果您想要保存或还原具有相同前缀的多个设置可以使用beginGroup()指定前缀并在结束时调用endGroup()。下面是相同的示例但这次使用了组机制 settings.beginGroup(mainwindow); settings.setValue(size, win-size()); settings.setValue(fullScreen, win-isFullScreen()); settings.endGroup();settings.beginGroup(outputpanel); settings.setValue(visible, panel-isVisible()); settings.endGroup();如果使用beginGroup()设置了组大多数函数的行为会相应改变。组可以递归设置。 除了组QSettings还支持数组概念。详细信息请参阅beginReadArray()和beginWriteArray()。 后备机制 假设您已经创建了一个QSettings对象组织名称为MySoft应用程序名称为Star Runner。在查找值时按照以下顺序搜索最多四个位置 Star Runner应用程序的特定用户位置所有MySoft应用程序的特定用户位置Star Runner应用程序的系统范围位置所有MySoft应用程序的系统范围位置 有关Qt支持的不同平台上这些位置的信息请参阅下面的特定平台的注释。 如果在第一个位置找不到键则继续在第二个位置搜索依此类推。这使您能够存储系统范围或组织范围的设置并可以在每个用户或每个应用程序的基础上进行覆盖。要关闭此机制请调用setFallbacksEnabled(false)。 虽然可以从四个位置读取所有键但只有第一个文件与当前正在处理的应用程序相关的特定用户位置可以写入。要写入其他文件请省略应用程序名称和/或指定QSettings::SystemScope与默认值QSettings::UserScope相对。 让我们通过一个示例来看 QSettings obj1(MySoft, Star Runner); QSettings obj2(MySoft); QSettings obj3(QSettings::SystemScope MySoft, Star Runner); QSettings obj4(QSettings::SystemScope, MySoft);下表总结了哪些QSettings对象访问哪些位置。X表示该位置是与QSettings对象关联的主位置用于读取和写入o表示在读取时该位置用作后备。 这种机制的美妙之处在于它适用于Qt支持的所有平台并且仍然提供了很大的灵活性而无需指定任何文件名或注册表路径。 如果您想在所有平台上都使用INI文件而不是本地API可以将QSettings::IniFormat作为QSettings构造函数的第一个参数后跟作用域、组织名称和应用程序名称 QSettings settings(QSettings::IniFormat, QSettings::UserScope,MySoft, Star Runner);Settings Editor示例允许您尝试不同设置位置以及打开或关闭后备机制。 恢复GUI应用程序的状态 QSettings经常用于存储GUI应用程序的状态。下面的示例演示了如何使用QSettings来保存和恢复应用程序主窗口的几何形状。 void MainWindow::writeSettings() {QSettings settings(Moose Soft, Clipper);settings.beginGroup(MainWindow);settings.setValue(size, size());settings.setValue(pos, pos());settings.endGroup(); }void MainWindow::readSettings() {QSettings settings(Moose Soft, Clipper);settings.beginGroup(MainWindow);resize(settings.value(size, QSize(400, 400)).toSize());move(settings.value(, QPoint(200, 200)).toPoint());settings.endGroup(); }有关为什么调用QWidget::resize()和QWidget::move()而不是QWidget::setGeometry()以恢复窗口的几何形状的讨论请参阅窗口几何形状。 readSettings()和writeSettings()函数必须从主窗口的构造函数和close事件处理程序中调用如下所示 MainWindow::MainWindow() {...readSettings(); }void MainWindow::closeEvent(QCloseEvent *event) {if (userReallyWantsToQuit()) {writeSettings();event-accept();} else {event-ignore();} }有关使用QSettings的自包含示例请参见Application示例。 同时从多个线程或进程访问设置 QSettings是可重入的。这意味着可以同时在不同的线程中使用不同的QSettings对象。即使这些QSettings对象引用相同的磁盘文件或系统注册表中的相同条目此保证仍然有效。如果通过一个QSettings对象修改了一个设置这个更改将立即对在同一位置操作并且在同一进程中存在的任何其他QSettings对象可见。 可以安全地从不同的进程可以是同时运行的应用程序的不同实例或完全不同的应用程序读取和写入相同的系统位置。它使用建议性文件锁定和智能合并算法来确保数据的完整性。请注意sync()方法会导入其他进程所做的更改除了写入这个QSettings的更改。 常用方法 以下是QSettings类的一些常用方法的介绍。 构造函数 QSettings(const QString organization, const QString application QString(), QObject *parent nullptr)使用组织名称和应用程序名称创建一个QSettings对象。默认情况下QSettings使用基于平台的本地存储机制。 organization组织名称application应用程序名称可选parent父级QObject对象可选 读取和写入值 value(const QString key, const QVariant defaultValue QVariant())读取指定键的值如果键不存在则返回defaultValue。返回QVariant类型的值。setValue(const QString key, const QVariant value)设置指定键的值。remove(const QString key)删除指定键及其对应的值。clear()清除所有的设置键和值。 设置默认值 setDefaultFormat(QSettings::Format format)为所有新创建的QSettings对象设置默认格式例如INI格式或注册表格式。setDefaultScope(QSettings::Scope scope)为所有新创建的QSettings对象设置默认作用域用户范围或系统范围。 读取和写入组 beginGroup(const QString prefix)开始一个以prefix为前缀的设置组。endGroup()结束当前的设置组。 同步操作 sync()将所有的更改写入到永久存储确保数据的同步。通常QSettings会自动定期执行这个操作但在某些情况下可能需要手动调用。 获取设置信息 fileName()返回与当前QSettings对象关联的文件名。scope()返回当前QSettings对象的作用域用户范围或系统范围。organizationName()返回当前QSettings对象的组织名称。applicationName()返回当前QSettings对象的应用程序名称。 注意QSettings还提供了其他一些方法例如支持跨线程和进程读写设置以及对设置键和值进行迭代和查询。 示例 以下是一个使用QSettings的示包含了常用的成员方法 #include QCoreApplication #include QSettings #include QDebugint main(int argc, char *argv[]) {QCoreApplication a(argc, argv);// 创建 QSettings 对象QSettings settings(MyCompany, MyApp);// 设置值settings.setValue(username, John);settings.setValue(password, 123456);// 获取值QString username settings.value(username).toString();QString password settings.value(password).toString();qDebug() Username: username;qDebug() Password: password;// 检查是否存在某个键if (settings.contains(username)) {qDebug() The username key exists;}// 移除一个键settings.remove(password);// 通过分组设置值创建一个新的分组settings.beginGroup(Server);settings.setValue(host, localhost);settings.setValue(port, 8080);settings.endGroup();// 在分组中获取值QString serverHost settings.value(Server/host).toString();int serverPort settings.value(Server/port).toInt();qDebug() Server Host: serverHost;qDebug() Server Port: serverPort;// 将更改刷新到磁盘上的配置文件中settings.sync();return a.exec(); }结果 示例步骤 创建了一个名为MyApp的应用程序设置并设置了一些值。通过value()方法获取这些值并输出。使用contains()方法检查特定的键是否存在并使用remove()方法移除了password键。使用beginGroup()和endGroup()方法创建了一个名为Server的分组并在该分组中设置了一些值。通过sync()方法将更改刷新到配置文件中。
http://www.zqtcl.cn/news/10027/

相关文章:

  • 网站后台任务东莞网站建设行业翘楚
  • html5网站尺寸买手表去哪个网站买是正品的
  • 淄博周村网站建设方案安卓市场下载app
  • 用html做的游戏网站wordpress 电影解析
  • 做外语网站的公司西宁网站优化
  • 网站项目计划书模板范文做特卖的网站
  • 江门网站建设外包做国学类网站合法吗
  • 企业官网推广方案网站设计O2O平台优化
  • 网站域名怎么写ie浏览器在线使用
  • 东莞市人才招聘网官网宁波seo关键词
  • 网站开发质量屋4435建站
  • 手机小游戏网站大全扬州市邗江区城乡建设局网站
  • 做期货要看哪些网站酒泉建设局造价官网站
  • 哈尔滨品牌网站建设上海市建设考核中心网站
  • 用明星名字做网站网站推广计划书范文
  • 重新安wordpress网站机顶盒视频网站建设
  • 电商网站成本大型网站开发php框架
  • 手表网站免费设计企业管理软件公司排名
  • 如何对网站页面进行优化视频号认证需要多少钱
  • 网站开发后服务费网上免费开店怎么开
  • 南京一对一网站建设dwcc网站前台脚本怎么做音频
  • 朝西村小江网站建设怎么让网站自适应
  • 网站栏目结构优化公司网站建设一年多少钱
  • 网至普的营销型网站建设八师石河子精神文明建设网站
  • 网站推广的方法是什么网站开发使用的软件
  • 网站风格特点网站根目录文件夹
  • 深圳华强做网站网站空间域名注册
  • 淄博做网站seo用网页源代码下载文件
  • 苏州网站推广工具群晖可以做几个网站
  • 网站模板建设教程小公司做网站的好处