Comments (9)
我更改成功了。
但是单行时间字体太小了,我又做了如下更改,不知道改得对不对
在/usr/share/plasma/plasmoids/net.blumia.pineapple.calendar/contents/ui
找到了CompactRepresentation.qml
,然后修改第 33 行的"h:mm\nyyyy/MM/dd"
为“hh:mm:ss”
,设置成24小时制,并且显示秒钟。
接着发现单行显示时间字体太小了,于是我在 34 行的Text
变量内添加字体大小设置font.pointSize: 20
,更改字体样式font.family: "Hack"
。
然后发现字体不能撑开布局,由于不懂qt只能一点一点的试,最终用了个土办法,在 TextMetrics
变量内增加上面2行字体大小和字体样式的设置,发现可以撑开了布局了。
最后的最后,觉得时钟两边还是有点挤,在第 14 行 Item
变量内给 Layout.minimumWidth
后面的值textMetrics.width
加了20,注意运算符号两边都要加空格,我改了好几遍都没生效,最后才发现是少了空格。
from pineapple-calendar.
我还没研究过怎么加 plasmoid applet 设置,不过或许你直接改这部分代码会更方便一些。
"h:mm\nyyyy/MM/dd"
改成你想要的格式就好。
p.s. 如果已经安装并且不想重新编译的话,找到这个文件对应安装到的位置然后直接改那个文件也行,改完之后重新加载一下 plasmashell 即可。
from pineapple-calendar.
好,我试一试
from pineapple-calendar.
其实可以 QtCreator 新建个空的 QML 项目然后在 QtCreator 的可视化设计器里试效果,或者用 qmlscene
试,然后再把满意的效果搬到对应的 plasma 小部件代码中。
这里简单修改了一下 CompactRepresentation.qml
使得其可以脱离 plasma 小部件的依赖来更方便的测试效果,可以根据下面这个版本尝试做修改来使用上面提到的方式调整效果,完毕后再按同样的方式修改 CompactRepresentation.qml
的对应部分就可以了。
import QtQuick 2.4
import QtQuick.Layouts 1.1
Item {
id: mainWindow
Layout.minimumWidth: textMetrics.width
Layout.minimumHeight: 16
Text {
id: time
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
font.weight: Font.Normal
color: theme.textColor
font.pixelSize: plasmoid.configuration.clockFontSize
text: Qt.formatDateTime( new Date(), "h:mm\nyyyy/MM/dd" )
anchors.fill: parent
TextMetrics {
id: textMetrics
font.family: time.font.family
font.pointSize: time.font.pointSize
text: time.text
}
}
}
重申:上面的代码片段是修改过的,不能直接用在 plasma 小部件中,仅供测试效果,你仍需要以相同方式修改实际用在小部件中的对应文件。
from pineapple-calendar.
我印象中plasmoid和其他的plasma插件都使用类似的方法存取设置:都通过一个专门的qml文件提供设置页面,然后默认配置存在一个xml文件中——用户修改的配置似乎是自动管理的其他文件中存储的。我以前改过一个桌布插件,就是使用这种方法,但是一两年前了,记不太清楚了。
或许可以参考一下Event Calendar的相关部分?这个日历plasmoid可定制性非常强(包含时间日期字体字号内容的修改),应该比较好找灵感。
(我个人的需求和上面的不一样,而且plasmoid安装在系统层级……所以很希望可以更方便地自定义……)
from pineapple-calendar.
我大概看过文档知道怎么提供配置项,虽说有计划搞(所以这个 issue 一直没关)不过因为很少有用户用所以比较懒没去搞。一般需求设置是 one-off 的,以及 plasmoid 的一些配置跨 plasma 版本还多少有点差异 = =
我个人的需求和上面的不一样
需求不一样的话我也得知道你是什么需求才能提供配置项呀 😂
p.s. 即便后续提供定制项也只能给最新 plasma 测(在 master 上继续搞),我可能没精力 backport 到 0.1.1 这个 tag 上,而老一点的发行版(比如 ubuntu 20.04 lts)是用不了目前的 master 分支状态的。
from pineapple-calendar.
@BLumia 感谢解释。跨plasma版本(小版本)有差异这事有点让人意外……当初gnome 3就被人在相关话题批判,现在轮到plasma也干这种事了么😂
至于我的需求……其实就是希望可以自定义时间日期的显示内容/格式,然后要是可以调整字体就更好了。现在不显示秒数,同时字体和字号看着怪怪的。
下图是比较好一点的状态,来源于默认的数字时钟plasmoid:
其实我本来想着等提供配置页之后,如果不涵盖该功能,那么自己提个PR的。照猫画虎应该用不了多久,但从头开始就有点超出我的时间和精力了……
(版本对我不是问题……我是archlinux用户)
from pineapple-calendar.
跨plasma版本(小版本)有差异这事有点让人意外……当初gnome 3就被人在相关话题批判,现在轮到plasma也干这种事了么😂
可以参考下这个 repo 第一个 issue 以及 0.1.1 发布页(#2)对 ubuntu 20.04 的补充描述,有涉及到一部分版本移植相关的问题。
如果只用 Qt 的接口或者 KDE Framework 的 C++ 接口的话基本没什么影响,不过 plasmoid QML 组件接口偶尔还是会变。因为我也是 Archlinux 上开发,加上 plasmoid applet 的文档并不算详细,如果不小心用了后续 plasma 才提供的新增接口的话,后向兼容到早一些的版本可能就会踩坑。
至于我的需求……其实就是希望可以自定义时间日期的显示内容/格式,然后要是可以调整字体就更好了。现在不显示秒数,同时字体和字号看着怪怪的。
只是显示内容格式的话,参考上面 #5 (comment) 加上秒应该就可以了。字体和行间距之类大概也只需要加属性和提供配置就好。
来源于默认的数字时钟plasmoid
数字时钟 Plasmoid 的那部分代码 看着还挺麻烦的,不过大概是因为功能比较多。我最初写的时候完全只是因为我比较习惯 Windows 那种显示格式所以干脆写成了一样的,最初看 plasma 上下大小不一的时间反倒觉得怪怪的 😂
其实我本来想着等提供配置页之后,如果不涵盖该功能,那么自己提个PR的。照猫画虎应该用不了多久,但从头开始就有点超出我的时间和精力了……
目前暂时没时间加配置项进去,等闲了我先加个自定义格式的配置项好了。PR 也欢迎,其实我 QtWidgets 写的相对多一些,QML 也不算熟悉,不过总之遇到问题的话可以一起讨论~
(版本对我不是问题……我是archlinux用户)
同 Arch 用户 :)
from pineapple-calendar.
已于 14e8105 增加了基本的配置项,虽说没包含本地化翻译,不过已经可以从【配置时间与日历】菜单打开的设置窗口中进行简单的行为调整了,目前提供了时间格式字符串的配置和字号的配置,暂未提供其它功能的配置项。以及修改过程中发现的之前存在的一些原本没注意到的问题也于此提交中一并进行了修复。
作为附注,时间格式写法请参考Qt.formatDateTime()
的文档中给出的描述。另外,尽管时间格式位置实际允许一些简单的 html 标签(比如其实可以写 <b>h:mm</b><br/>yyyy/MM/dd
来加粗时间),但也要注意你所填写的所有内容若符合 Qt.formatDateTime()
中的格式规则即会被替换为实际的时间和日期,包括看上去像是 html 标签中的内容。
此 Issue 所对应的需求应该已经可以满足,为了避免偏题太多,就将此 Issue 关闭。关于其它配置项的需求可以考虑另开 Issue,若需要讨论开发或者了解细节的话也欢迎在 Discussion 讨论版 中发帖以便一同讨论~
from pineapple-calendar.
Related Issues (7)
- How to set up the environment to run HOT 59
- 做一个Deepin版本的 HOT 5
- 打包了Fedora 版本,望更新wiki HOT 4
- 构建找不到ECM包 HOT 2
- 请求集成kde自带数字时钟的节假日(在小部件的设置面板中增加设置项) HOT 5
- 22.04打包版(见7楼) HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pineapple-calendar.