Qt 文件对话框使用 Deepin风格

这篇具有很好参考价值的文章主要介绍了Qt 文件对话框使用 Deepin风格。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

当你在Deepin或UOS 上开发 Qt 程序时,如果涉及到文件对话框功能,那么就会遇到调用原生窗口的问题。

如果你使用的是官方的Qt版本,那么在Deepin或者UOS系统上,弹出的文件对话框会是如下这样:

Qt 文件对话框使用 Deepin风格,qt,Deepin,UOS

而Deepin或UOS系统提供的默认对话框:

Qt 文件对话框使用 Deepin风格,qt,Deepin,UOS

可以看到,Qt自身提供的对话框太丑,与系统的UI风格不搭,不协调。所以有没有什么办法能够使得Qt弹出的文件对话框是Deepin 或 UOS风格呢

为了能实现Deepin 或 UOS系统风格的文件对话框,有以下方案:

  1. 使用DTK开发

    DTK(Development ToolKit)是UOS基于 Qt 开发的一整套简单且实用的通用开发框架,不过使用DTK将不能跨平台,同时依赖很多。

  2. 使用qt5integration库

    qt5integration 用于Deepin桌面环境的Qt平台主题集成插件。它包含多个QT5插件,以使DDE更加QT5应用程序友好。但是,qt5integration依赖很多,依赖于DTK(编译DTK是一件很痛苦的事情),无法作为独立的库使用。

  3. Deepin/UOS 自带的Qt

    UOS自身维护了Qt 5.13的版本,并做了UOS风格化处理及相关优化。但由于UOS系统自带的Qt版本太低,与Qt 5.15.2 以上版本兼容性很差,且失去了跨平台能力,所以不考虑使用UOS维护的Qt版本。Deepin的Qt版本为5.15,版本较新,但同样不能跨平台,所以也不考虑。

综上,以上方案都不是最佳选择。

最佳解决方案

Deepin-QFileDialog 项目基于qt5integration进行的魔改,去掉了DTK等依赖,能够直接编译使用,完全独立的库,开箱即用,并且不需要更改任何代码。

通过Qt插件机制实现用于 Qt 弹出 Deepin 或 UOS 风格的文件对话框的功能。

https://github.com/L-Super/Deepin-QFileDialog

下载代码

git clone https://github.com/L-Super/Deepin-QFileDialog.git

编译

mkdir build && cd build
cmake ..
make -j8

生成libqdeepin.so动态库路径

build/plugins/platformthemes/libqdeepin.so

使用

将生成的 libqdeepin.so 动态库拷贝到 Qt platformthemes 目录下,这样在 Qt Creator运行程序时,弹出的文件对话框就是Deepin/UOS风格的对话框。

/home/Leou/Qt/5.15.2/gcc_64/plugins/platformthemes/

示例代码:

#include <QApplication>
#include <QFileDialog>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QFileDialog dialog;
    dialog.exec();

    return a.exec();
}

效果:

Qt 文件对话框使用 Deepin风格,qt,Deepin,UOS

打包发布程序时,将libqdeepin.so放入安装包结构目录 plugins/platformthemes下即可文章来源地址https://www.toymoban.com/news/detail-639813.html

├── lib
├── plugins
│   ├── bearer
│   ├── iconengines
│   ├── imageformats
│   ├── platforminputcontexts
│   ├── platforms
│   ├── platformthemes
│   └── xcbglintegrations
└── translations

到了这里,关于Qt 文件对话框使用 Deepin风格的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 12.QT文件对话框 文件的弹窗选择-QFileDialog

    目录 前言: 技能: 内容: 1. 界面 2.信号槽  3.其他函数 参考: 前言: 通过按钮实现文件弹窗选择以及关联的操作 效果图就和平时用电脑弹出的选文件对话框一样 技能:  QString filename = QFileDialog::getOpenFileName(this, \\\"弹窗标题\\\",                                          

    2024年02月20日
    浏览(56)
  • Qt应用开发(基础篇)——文件选择对话框 QFileDialog

             QFileDialog 类继承于 QDialog ,提供了一个允许用户选择文件或目录的对话框。         对话框窗口 QDialog          QFileDialog 文件选择对话框允许用户在当前文件系统中选择一个或者多个文件或者文件路径,使用静态函数创建是很简便的方式,比如:      

    2024年02月09日
    浏览(52)
  • QT—5种标准对话框使用详解

    对话框是 GUI 程序中不可或缺的组成部分。一些不适合在主窗口实现的功能组件都必须放在对话框中设置。对话框通常会是一个顶层窗口,出现在程序最上层,用于实现短期任务或者简洁的用户交互。所谓标准对话框,是 Qt 内置的一系列对话框,用于简化开发。事实上,有很

    2023年04月20日
    浏览(51)
  • Qt对话框——QInputDialog输入对话框

    Qt对话框——QInputDialog输入对话框 在Qt开发中,我们有时需要通过一个对话框获取用户的输入,而QInputDialog就是Qt框架提供的一种方便地弹出输入对话框并获取用户输入数据的方式。 QInputDialog使用非常简单,我们可以通过访问不同的接口来弹出输入对话框获取多种类型的返回

    2024年02月12日
    浏览(52)
  • Qt标准对话框:8大对话框详解

    颜色对话框类 QColorDialog 提供了一个可以获取指定颜色的对话框的对话框部件: 这里使用 QColorDialog 的静态函数 getColor () 来获取颜色,执行时弹出颜色选择对话框: 返回的是一个 QColor 类型的数据: 这四个数值分别代表:透明度(alpha)、Red、Green、Blue。它们的默认值都是

    2024年02月03日
    浏览(61)
  • 【Qt】对话框QDialog类,模态对话框和非模态对话框

    QDialog类是所有对话框窗口类的基类。对话框窗口是一个用来完成短小任务或和用户进行简单交互的 顶层窗口 。 按照运行对话框时是否还可以和该程序的其它窗口进行交互,将它分为两类:模态(modal)对话框和非模态(modaless)对话框。 模态对话框 先看一个例子: 创建一

    2024年02月05日
    浏览(63)
  • 【Qt】:对话框(二)

    Q提供了多种可复用的对话框类型,即Qt标准对话框。Qt标准对话框全部继承于QDialog类。常用标准对话框如下: 消息对话框是应用程序中最常用的界面元素。消息对话框主要用于为用户提示重要信息,强制用户进行选择操作。 QMessageBox自己内置了一些图标和按钮,我们可以直接

    2024年04月16日
    浏览(64)
  • 【Qt】:对话框(一)

    对话框是GUI程序中不可或缺的组成部分。一些不适合在主窗口实现的功能组件可以设置在对话框中。对话框通常是一个顶层窗口,出现在程序最上层,用于实现短期任务或者简洁的用户交互。 Qt常用的内置对话框有: QFiledialog (文件对话框). QColorDialog(颜色对话框)、 QFontDialog(字

    2024年04月14日
    浏览(83)
  • Qt对话框

    颜色对话框: 字体对话框: 输入对话框: 消息对话框:

    2024年02月06日
    浏览(48)
  • 【QT】标准对话框

    目录 1 概述 2 QFileDialog对话框 1.选择打开一个文件 2.选择打开多个文件 3.选择已有目录 4.选择保存文件名 3 QColorDialog对话框 4 QFontDialog对话框 5 QInputDialog标准输入对话框 1.输入文字 2.输入整数 3.输入浮点数 4.下拉列表选择输入 6 QMessageBox消息对话框 1.函数原型 2.简单信息

    2024年02月02日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包