首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Qt官方示例-样式插件

这个例子展示了如何创建一个以新的GUI外观扩展Qt的插件。

  Qt中的插件是存储在共享库中的类,可以在运行时由QPluginLoader加载。在Qt中创建插件时,它们要么扩展Qt应用程序,要么扩展Qt本身。编写可扩展Qt本身的插件是通过继承插件基类之一,从该类重新实现功能并添加宏来实现的。在此示例中,我们通过添加新的GUI外观(即,使新的QStyle)来扩展Qt 。插件概述文档中对插件进行了高级介绍。

  提供新样式的插件会继承QStylePlugin基类。样式插件由Qt加载并通过QStyleFactory提供。我们已经实现了SimpleStylePlugin,它提供了SimpleStyle。新样式通过以红色绘制按钮背景为小部件样式。

  从某种意义上说,新样式与平台无关,因为它不是基于任何特定的样式实现,而是使用QProxyStyle来调整默认为本机系统样式的当前应用程序样式中的外观。

  注意:在某些平台上,本机样式将阻止按钮具有红色背景。在这种情况下,请尝试以其他样式(例如Fusion)运行示例。还可设置的设置为。

  我们使用测试插件StyleWindow,在其中显示QPushButton。在SimpleStyle和StyleWindow类不包含任何插件的特定功能及其实现是微不足道的。因此,我们将跳过它们并继续使用SimpleStylePlugin和main()功能。看完之后,我们检查插件的配置文件。

1. SimpleStylePlugin类定义

  SimpleStylePlugin继承QStylePlugin,它们都是插件类。

  返回此插件可以创建的样式名称的列表,同时使用这样的字符串并返回与键对应的QStyle。这两个函数都是从QStylePlugin重新实现的纯虚函数。当应用程序请求SimpleStyle此插件创建的样式的实例时,Qt将使用此插件创建它。

2. SimpleStylePlugin类实现

这是实现:

  由于此插件仅支持一种样式,因此我们返回带有该样式的类名称的QStringList。

这是函数:

需要注意的是,「样式插件的键不区分大小写。大小写敏感度因插件而异,因此在实现新插件时需要进行检查」

该main()函数:

  初始化QApplication对象时,Qt会加载可用的样式插件。QStyleFactory类能获取到所有样式,并使用生成它们(它是所有样式插件的包装)。

3. 简单样式插件配置文件

  SimpleStylePlugin位于其自己的目录中,并且具有自己的配置文件:

  在插件配置文件中,我们需要在构建共享库而不是可执行文件时设置lib模板。我们还必须将设置为。我们还将库设置为存储在stylewindow下的styles文件夹中,因为这是Qt在其中搜索样式插件的路径。

4. 关于更多

「QtCreator软件」可以找到:

或在以下「Qt安装目录」找到:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210103A0E9KO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券