Qt是一个跨平台的类库,相同的界面组件在不同的操作系统上显示效果是不一样的。

在windows7系统中,默认样式有:windows,fusion两个;通过安装Qt Creator编译器后,系统中会自动添加windowsvista样式,通常在Qt Creator编译器中设计界面时,组件的默认样式就是windowsvista样式,看起来比较美观。

当我们在自己电脑上开发完应用程序后,在其他电脑上使用时,会发现软件界面风格和在自己本机上运行时不太一致时,很有可能就是其他电脑上只有windows,fusion两个样式,默认使用windows样式,而没有windowsvista样式,导致的;一般通过安装Qt Creator编译器后即可解决。

在为应用程序设置样式时,一般会使用到如下函数:

(1)可以通过keys()函数,获取所在平台支持的QStyle的样式列表;该函数返回一个字符串列表;

QStringList QStyleFactory::keys()

(2)可以通过create函数,创建一个QStyle对象;

QStyle *QStyleFactory::create(const QString &key)

(3)可以通过setStyle函数为应用程序设置一个样式,设置样式后,界面元素都具有这个样式所定义的外观可以获得这个缺省样式的名称;

void QApplication::setStyle(QStyle *style)

示例一:

#include "mainwindow.h"
#include <QApplication>
#include <QStyleFactory>int main(int argc, char *argv[])
{QApplication a(argc, argv);// 设置应用程序样式代码QStyle *style=QStyleFactory::create("windowsvista");  // windows,fusiona.setStyle(style);MainWindow w;w.show();return a.exec();
}

示例二:

#include "mainwindow.h"
#include <QApplication>
#include <QStyleFactory>int main(int argc, char *argv[])
{QApplication a(argc, argv);QList<QString> styleSet= QStyleFactory::keys();  // windowsvista, windows, fusionQStyle *style=QStyleFactory::create(styleSet[0]);a.setStyle(style);MainWindow w;w.show();return a.exec();
}

其中styleSet变量包含元素如下:

Qt学习笔记(二)【软件样式及界面外观设置】相关推荐

  1. Qt学习笔记(二十七):QLabel 的常用方法

    一.QLabel 的构造函数: 1.QLabel(QWidget * parent = 0, Qt::WindowFlags f = 0):创建 QLabel 控件时,指定其父对象,并设置其窗口属性( ...

  2. 【QT学习笔记】#基础篇#(4)设置程序图标和标题

    一.设置图标 以下两种方式设置后,应用程序本身图标.任务栏图标.窗口左上角图标 会使用设置的同一个图标. 方式一: 在 .pro 文件添加 RC_ICONS = 图标名.ico 示例: QT += c ...

  3. QT学习笔记(三):Qt软件打包发布(QT5.8 _msvc2013_64+Win10_64)

    QT学习笔记(三):Qt软件打包发布(QT5.8 _msvc2013_64+Win10_64) 1.编译方式介绍: 2.动态编译方式打包发布QT程序: 方法一:手动复制 方法二:使用工具 问题& ...

  4. QT学习笔记(二):QT MinGW 和 MSVC 编译方式

    QT学习笔记(二):QT MinGW 和 MSVC 编译方式 Qt 中有两种方式编译:一种是MinGW ,另一种MSVC,是使用两种不同的编译器. 1.MSVC是指微软的VC编译器: 2.MingGW ...

  5. QT学习笔记(十二):透明窗体设置

    QT学习笔记(十二):透明窗体设置 创建 My_Widget 类 基类为QWidget , My_Widget.cpp 源文件中添加代码 #include "widget.h" # ...

  6. QT学习笔记(摘抄)

    QT学习笔记-1.QT主要的对象 说来惭愧学习c++很长时间了一直没有使用c++开发过软件界面 所以现在想认认真真的学习一个c++图形界面框架库 本来想学习Xwidget但是这个资料不大好找 有啥问题 ...

  7. wxpython应用程序对象与顶级窗口_wxPython学习笔记(二)

    如何创建和使用一个应用程序对象? 任何wxPython应用程序都需要一个应用程序对象.这个应用程序对象必须是类wx.App或其定制的子类的一个实例.应用程序对象的主要目的是管理幕后的主事件循环. 父类 ...

  8. qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)

    原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...

  9. Qt学习笔记之MySQL数据库

    一.MySQL概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQ ...

最新文章

  1. 记事本 换行符_Windows 记事本再度上架 Microsoft Store
  2. HDU多校4 - 6813 Last Problem(构造)
  3. debian 安装 php 遇到的问题解决
  4. pcb外观维修_「维修案例」泰克AFG3021函数任意波形发生器故障维修
  5. spring中事务失效的几种情况
  6. Mybatis的基本步骤
  7. android音量加减驱动,android下调试声卡驱动之概述
  8. 枚举基类Enum详解
  9. 初次了解struts的action类
  10. Raspberry Pi网络监控
  11. F2FS 基础知识一
  12. PHP TCPDF导出订单合同并且每页加一个印章
  13. sqlplus命令支持上、下翻功能
  14. cad一键卸载工具叫什么_autodesk卸载工具一键卸载或安装CAD,3dmax 如何彻底卸载CAD系列软件 | 「讲文兄博客」...
  15. Wasserstein GANs 三部曲(二):Wasserstein GAN论文的理解
  16. matlab纵坐标两边标注,matlab纵坐标标注
  17. UOS系统下安装软件打不开的解决方法
  18. HDMI协议介绍(一)--Overview
  19. 李含光《C语言程序设计教程》答案第一——四章
  20. 阿里云团队协作网盘Teambition之目录程序

热门文章

  1. 一条SQL返回多个统计求和
  2. css沿曲线进行动画,jQuery沿贝兹曲线运动动画特效
  3. 零基础玩转C语言系列第一章——初始C语言(上)
  4. 【解决方案】Gitlab阿里企业邮箱配置
  5. 安卓前端车牌识别技术
  6. pdf如何转换成excel?教你几个方法
  7. 分享111个HTML医疗保健模板,总有一款适合您
  8. 如何在海外高效的推广APP?海外推广产品该注意哪些点?
  9. win10怎么设置护眼背景
  10. 卸载Autodesk系列之后电脑屏幕灰白怎么解决