[DTK] 打算开发deepin上的Fences,控制dde-desktop的接口是什么?
Tofloor
poster avatar
cjy2
deepin
2021-06-17 06:37
Author

打算做一个deepin上的Fences项目。

目前思路是利用控制桌面的接口,所以这个接口是什么。

效果大概这样:

Reply Favorite View the author
All Replies
Hello
deepin
2021-06-17 06:41
#1

Qt::Desktop大概(

Reply View the author
cjy2
deepin
2021-06-17 06:56
#2
Reply View the author
cjy2
deepin
2021-06-17 06:56
#3
cjy2

居然能运行

当然,没效果……

Reply View the author
WENWEN
deepin
2021-06-17 16:30
#4
cjy2

居然能运行

当然,没效果……

https://docs.uniontech.com/zh/

Reply View the author
septemberhx
deepin
2021-06-17 18:28
#5
cjy2

这个项目里其实没用到接口,它是把对应的文件直接移动到一个 . 开头的隐藏文件夹里了。按照这个路子实现的话,也不需要接口。

 

不过上面这种方式很违反“直觉”。。。明明文件就在桌面上,文件管理器看不见也就罢了,命令行操作会发现连路径都不是桌面文件夹。所以最好的方法应该是只在桌面上“看不见”这个文件,但是我估计 deepin 没有相关接口。

 

还有个折中的方法,在 Desktop 文件夹里新建一个文件叫 .hidden,文件的内容里为想要隐藏的文件,这样在桌面和文件管理器里,在不查看隐藏文件的情况下,是看不见的

Reply View the author
忘记、过去
Moderator
2021-06-17 19:19
#6
septemberhx

这个项目里其实没用到接口,它是把对应的文件直接移动到一个 . 开头的隐藏文件夹里了。按照这个路子实现的话,也不需要接口。

 

不过上面这种方式很违反“直觉”。。。明明文件就在桌面上,文件管理器看不见也就罢了,命令行操作会发现连路径都不是桌面文件夹。所以最好的方法应该是只在桌面上“看不见”这个文件,但是我估计 deepin 没有相关接口。

 

还有个折中的方法,在 Desktop 文件夹里新建一个文件叫 .hidden,文件的内容里为想要隐藏的文件,这样在桌面和文件管理器里,在不查看隐藏文件的情况下,是看不见的

以前的文管好像就是这么处理的啊......每个分区底下都有一个 .hidden 文件记录隐藏了哪些文件吧

Reply View the author
septemberhx
deepin
2021-06-17 19:42
#7
忘记、过去

以前的文管好像就是这么处理的啊......每个分区底下都有一个 .hidden 文件记录隐藏了哪些文件吧

最理想的状态是只在桌面上看不到一些文件,但是文件管理器或者是命令行看的话,它们都还在 Desktop 文件夹里。 .hidden 的话,文件管理器也看不到了

Reply View the author
sudo_free
deepin
2021-06-17 22:29
#8

怎么保证绘制的图标 主题/大小 和系统一致呢?我猜deepin没给这个接口,但是手动去翻翻 配置文件或者dconf应该可以搞定,拖拽行为也要手写……添加右键菜单deepin倒是有api

Reply View the author
柚子
deepin
2021-06-18 23:41
#9
sudo_free

怎么保证绘制的图标 主题/大小 和系统一致呢?我猜deepin没给这个接口,但是手动去翻翻 配置文件或者dconf应该可以搞定,拖拽行为也要手写……添加右键菜单deepin倒是有api

图标可以通过这种方式读取,图标大小等全在dconf里面有

   QFileInfo fileInfo(filedir);//filedir是文件路径
   QFileIconProvider icon;
   QPixmap pixmap = icon.icon(fileInfo).pixmap(150,150);
   ui->label->setPixmap(pixmap);//显示图标
   ui->label_2->setText(fileInfo.fileName());//显示文件名
Reply View the author
sudo_free
deepin
2021-06-19 02:16
#10
柚子

图标可以通过这种方式读取,图标大小等全在dconf里面有

   QFileInfo fileInfo(filedir);//filedir是文件路径
   QFileIconProvider icon;
   QPixmap pixmap = icon.icon(fileInfo).pixmap(150,150);
   ui->label->setPixmap(pixmap);//显示图标
   ui->label_2->setText(fileInfo.fileName());//显示文件名

那有在搞吗😏给个地址

Reply View the author
柚子
deepin
2021-06-19 17:26
#11
sudo_free

那有在搞吗😏给个地址

什么地址???

Reply View the author
sudo_free
deepin
2021-06-19 21:04
#12
柚子

什么地址???

github / gitee 仓库地址啊

Reply View the author
柚子
deepin
2021-06-20 17:39
#13
sudo_free

github / gitee 仓库地址啊

什么东西的github / gitee 地址呀,刚刚给的那段代码来自我的Oh my dde里面的Hash值计算模块,Oh my dde的地址在这

https://gitee.com/Limexb/oh-my-dde

Reply View the author
Rubbish
deepin
2021-07-05 04:17
#14

楼主不知道搞出来没。今天下午发现一个方法,用X11的XReparent方法可以把你自己创建的窗口嵌入到dde-desktop的窗口里去,包括点击等等事件也完全没问题,就是不知道背景透明有没有障碍。

Reply View the author
越行勤
deepin
2022-05-04 04:45
#15
Rubbish

楼主不知道搞出来没。今天下午发现一个方法,用X11的XReparent方法可以把你自己创建的窗口嵌入到dde-desktop的窗口里去,包括点击等等事件也完全没问题,就是不知道背景透明有没有障碍。

你好,请问 这个 用X11的XReparent方法 ,有具体详细代码吗,我没接触过x11,感谢

Reply View the author
Rubbish
deepin
2022-05-07 07:00
#16
越行勤

你好,请问 这个 用X11的XReparent方法 ,有具体详细代码吗,我没接触过x11,感谢

暂时找不到了,测试代码没保存tail

大概就是XOpenDisplay,然后获取dde-desktop的WinID,然后把你自己的窗口(Qt可以获取窗口的winid)reparent到dde-desktop。细节你可以搜一下

Reply View the author
越行勤
deepin
2022-05-09 17:42
#17
Rubbish

暂时找不到了,测试代码没保存tail

大概就是XOpenDisplay,然后获取dde-desktop的WinID,然后把你自己的窗口(Qt可以获取窗口的winid)reparent到dde-desktop。细节你可以搜一下

好的 感谢

Reply View the author
越行勤
deepin
2022-05-10 04:06
#18
Rubbish

楼主不知道搞出来没。今天下午发现一个方法,用X11的XReparent方法可以把你自己创建的窗口嵌入到dde-desktop的窗口里去,包括点击等等事件也完全没问题,就是不知道背景透明有没有障碍。

我使用了这个方法,可惜的是 背景透明是有问题的 哭死

Reply View the author