[Newbies] 关于DDE DOCK
Tofloor
poster avatar
子非鱼
deepin
2024-05-30 12:31
Author

目录

一、项目描述

二、实现基础

三、实现设想

3.1基于Python实现项目设想的提出

3.2python语言实现项目的优势

四、实现过程

4.1Ubuntu的准备

4.2Qt的准备安装

4.3Pycharm的安装调试

五、参考资料

六、比赛收获

一、项目描述

DDE Dock 是深度桌面环境(DDE)的任务栏或 dock 栏性质的组件。为用户提供应用切换,托盘区域,快捷控制,桌面预览等功能。这些功能实质上是通过 DDE Dock 项目本身的插件化来实现的,因而开发者可以为 DDE Dock 编写各种类型的插件,使得用户可以方便的在 Dock 中浏览对应的插件并与之产生交互。

此项目期望你为 DDE Dock 编写一个系统监视插件,在插件界面上展示当前系统的内存使用情况、CPU 负载情况等信息,并在用户点击插件时,能够开启系统监视器。

二、实现基础

  • 熟悉 C++ 语言。
  • 了解 Qt 应用程序框架,了解 QML 的使用方式。
  • 能够根据阅读代码与文档,了解相关组件的工作方式与架构。

三、实现设想

3.1基于Python实现项目设想的提出

团队成员在学习思考的过程中,相较于c++语言,想到了更加熟悉的python语言。于是做出大胆设想,在为 DDE 桌面环境的任务栏组件编写系统状态监视插件这个项目中,可不可以使用python语言来完成这个项目。

实践证明,python语言可以完成这个项目,而且相对于简单。

3.2python语言实现项目的优势

  1. 跨平台兼容性:Python是一种跨平台的编程语言,这意味着编写的插件可以在多种操作系统上运行,只要DDE Dock支持这些操作系统。这大大增加了插件的适用范围和可移植性。
  2. 丰富的库支持:Python拥有庞大的第三方库生态系统,包括许多用于系统监控、图形界面开发、进程管理等功能的库。
  3. 易读性和可维护性:Python的语法简洁明了,易于学习和理解。这意味着开发者和维护人员可以更快地理解和修改代码,降低了维护成本。
  4. 插件化设计的便利:DDE Dock的插件化设计使得开发者可以专注于插件本身的功能实现,而不需要关心DDE Dock的底层实现细节。Python的模块化编程风格使得插件的开发更加清晰和独立。
  5. 与系统监视器的集成:当用户点击插件时,Python可以通过调用系统命令或API来启动系统监视器。Python的subprocess模块可以方便地执行系统命令,而os模块则提供了与操作系统交互的功能。
  6. 快速原型开发:Python的简洁语法和丰富的库支持使得开发者可以快速构建出插件的原型,并进行测试和迭代。这有助于快速验证插件的可行性和有效性。

四、实现过程

4.1Ubuntu的准备

1.在Ubuntu官网下载官方镜像

官网地址:Ubuntu系统下载 | Ubuntu

2.在VMware Workstation中创建新的虚拟机,然后导入咱们下载好的镜像文件。

然后就可以基于咱们自己的需求和喜好配置咱们的Ubuntu啦

注:因为Ubuntu的安装比较简单,所以在此不做过多缀述,注意留足需要的磁盘空间。

4.2Qt的准备安装

1.在虚拟机中下载官方开源软件

qt网址:Qt | Tools for Each Stage of Software Development Lifecycle

2.下载完成后找到安装包,在终端打开,需要我们下载安装依赖

$ sudo apt install libxcb-xinerama0 make g++ libgl-dev

3.对qt安装器赋予可执行权限,并运行qt安装器

$ chmod +x ./qt-online-installer-linux-x64-4.8.0.run 

$ ./qt-online-installer-linux-x64-4.8.0.run

4.要想使用qt安装器,我们需要有一个qt账户。如图:


屏幕截图 2024-05-29 202700.png

5.经过漫长的等待,我们的qt是不是终于能用了,在我们点击完成后。对的,出错了,不过经过我们的查阅研究,不用担心,接着下面的操作。

报错页面:

屏幕截图 2024-05-29 201950.png

6.解决办法,需要安装xcb-cursor0库,在终端内执行:

$ sudo apt-get update

$ sudo apt-get install libxcb-cursor0

7.大功告成

注:虽然文档过程简单,但是是经过团队一点一点摸索解决了过程中遇到的问题。

4.3Pycharm的安装调试

1.在pycharm官网下载基于Linux版本的压缩包

注意:.tar.gz**(Linux)**和.tar.gz(Linux ARM64)

Pycharm官网:https://www.jetbrains.com/pycharm/download/

 2.下载安装包完成后,解压到Ubuntu中

$ tar -zxvf pycharm-community-2024.1.1.tar.gz

3.解压完成后,打开Pycharm配置环境

根据需求安装咱们python代码所需要调用的库

import sys
import subprocess
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QPushButton
from PyQt5.QtCore import QTimer
import psutil

4.效果演示

屏幕截图 2024-05-29 231148.png

五、参考资料

Qt/QML:
Qt Qml | Qt QML 6.7.1
Qt6 QML Book: A Detailed Guide to Using Qt
dock:
GitHub - linuxdeepin/dde-dock: Dock application of DDE

六、比赛收获

首先,非常荣幸有这么一个参加比赛的机会使我们得到锻炼。

 为 DDE 桌面环境的任务栏组件编写系统状态监视插件,对于我们自己来说其实也是一个相对富有挑战性的一个项目。不同于老师平时的授课和测试,它更侧重于实践,侧重于动手。是理论知识与实际操作的结合,是我们团队成员思维的发散和碰撞。

在程序一次次报错后,沮丧会有,但也让我们动手解决问题的能力得到了大幅度的提升。去百度、去AI、去问老师,关关难过关关过,学到了很多很多受用的知识和方法。尤其是当程序运行出来之后有了结果,一切都是值得的。或许我们走的很慢,但是我们相信坚持一定能到终点。如果还有机会我们会尽善尽美的去打磨它完善它。

最后让我想到了总书记的一句话:“道阻且长,行则将至;行而不辍,未来可期。前方的路会有曲折,但也充满希望。”愿与诸君共勉之!

Reply Favorite View the author
All Replies
👿Deepin大护法👿
deepin
2024-05-30 13:14
#1

今夕是何年

Reply View the author
流浪的加菲
deepin
2024-05-30 13:40
#2

这是什么活动,为何“为 DDE 桌面环境的任务栏组件编写系统状态监视插件”用的是Ubuntu系统,哈哈doubt

Reply View the author
babyfengfjx
Super Moderator
CQA
2024-05-30 14:10
#3

代码飘的好~

Reply View the author
乾豫恒益
deepin
2024-05-30 14:36
#4

论文?like

Reply View the author
晚秋(lateautumn)
Moderator
2024-05-30 14:46
#5

这个新人很利害呀,发的帖子我这个大白是真的看不懂joy

Reply View the author
把一切操作变成GUI
deepin
Backbone of ecological co-construction group
2024-05-30 17:08
#6

跟dock有什么关系?

这拼凑也不是这样拼的吧

(我猜你的CPU usage永远都是3.8%

Reply View the author
deepin
2024-05-30 19:28
#7

别的不说,python语法确实简洁明了,不过能否易懂还要看使用者的习惯。到使用qt创建窗口什么的我还是会的。但是这个qt确实不太会用2333。我的项目已经停滞荒废了相当的时间

Reply View the author
兆兆嘟嘟嘟
deepin
2024-05-30 21:18
#8

dde-dock已经停更了,改用dde-shell。

Reply View the author