linuxdeepin / developer-center

Deepin developer center, provide developer wiki and community forum.
452 stars 73 forks source link

arch下字体大小改不了 #342

Closed xiayesuifeng closed 3 years ago

xiayesuifeng commented 7 years ago

arch下qt程序的字体大小死活改不了,只能改gtk程序的

JulianLai commented 7 years ago

我這邊只有暫時的解決方法,但也不是所有 Qt 程序都會套用,所以還是要等官方解決這個 BUG,不過看來是遙遙無期了

  1. 安裝 qt5-styleplugins-git,但記得每次 Qt5 有更新時要重新 build,要不然會出錯,如果是用 antergos 這個發行版記得不要用他提供的 qt5-styleplugins,因為都沒在更新的,桌面會掛掉。
  2. 以 root 權限用文字編輯器編輯 /etc/environment,在最後一行加入 QT_STYLE_OVERRIDE=gtk2

之後只要調整完字體大小後重新登入應該就會有效果了,目前知道使用 qt5-styleplugin-git 也沒效果的地方有以下幾個:

  1. dock 上面 app 的右鍵選單(譬如在 deepin-file-manager 圖示上按右鍵) deepinscreenshot_20170731081245

  2. 提示視窗,例如: deepinscreenshot_20170731081136 deepinscreenshot_20170731081647

和 Firefox 和 pamac 比較可發現字體大小的差距

hualet commented 7 years ago

目前能够保证的是Gtk程序实时生效,Qt程序重启后生效;

JulianLai commented 7 years ago

@hualet

236

如果沒安裝 qt5-styleplugins-git 並設定 /etc/environment 的話是不會生效的,而且用了也不是所有地方都會套用,這是重新登入好幾次的結果(反覆測試了幾個月都一樣): deepinscreenshot_ _20170731120514 不曉得是哪個環節有問題,所以我把我有安裝的套件的版本貼上來

名稱                   : deepin-qt5integration
版本                   : 0.2.2-1
描述                   : Deepin Qt5 platform plugin
硬體架構               : x86_64
URL                    : http://github.com/linuxdeepin/qt5integration
軟體授權               : GPL3
群組                   : deepin
它提供                 : 無
它依賴                 : deepin-tool-kit  libqtxdg  gtk2
可選依賴               : 無
需要它                 : deepin-control-center  deepin-dock
為這些軟體包的可選依賴 : 無
與它衝突               : qt5dxcb-plugin
它會取代               : qt5dxcb-plugin
安裝後大小             : 1151.00 KiB
打包者                 : Felix Yan <felixonmars@archlinux.org>
建置日期               : 西元2017年07月28日 (週五) 22時33分41秒
安裝日期               : 西元2017年07月29日 (週六) 00時15分27秒
安裝原因               : 單獨指定安裝
安裝指令稿             : 否
驗證者                 : SHA-256 總和碼
名稱                   : deepin-gtk-theme
版本                   : 17.10.3-1
描述                   : Deepin GTK Theme
硬體架構               : any
URL                    : https://github.com/linuxdeepin/deepin-gtk-theme
軟體授權               : LGPL3
群組                   : deepin
它提供                 : 無
它依賴                 : 無
可選依賴               : gtk-engine-murrine: for gtk2 themes
需要它                 : deepin-desktop-schemas
為這些軟體包的可選依賴 : 無
與它衝突               : 無
它會取代               : 無
安裝後大小             : 3.40 MiB
打包者                 : Felix Yan <felixonmars@archlinux.org>
建置日期               : 西元2017年06月27日 (週二) 12時58分05秒
安裝日期               : 西元2017年06月27日 (週二) 21時31分15秒
安裝原因               : 單獨指定安裝
安裝指令稿             : 否
驗證者                 : SHA-256 總和碼
xiayesuifeng commented 7 years ago

@hualet 这个问题存在很久了,而且昨天撸了个环境变量管理器,然后我发现了个变量 image 这个变量的值是空的,是不是跟这个有关

zccrs commented 7 years ago

@1377195627 QT_QPA_PLATFORM 这个环境变量不用设置,deepin的应用程序一般默认为 dxcb

xiayesuifeng commented 7 years ago

@zccrs 我没设置这货,这货在启动qt程序的时候自己冒出来的,终端env压根就没这变量

使用 FastHub 从我的 Nubia NX563J 发送

felixonmars commented 7 years ago

@zccrs 我理解这个问题是因为

  1. 新版 Qt 的 gtk2 主题插件在 AUR 里:qt5-styleplugins 暂时没在依赖里。
  2. DDE 不知为何没能成功设置 gtk2 主题,即使安装了上面那个包。

如果 2 能解决,我可以试试去开倒车把 qt5-styleplugins 打回来……

xiayesuifeng commented 7 years ago

@felixonmars 给qt设置gtk2主题?这貌似需要装一个啥gtk引擎才行,包名忘了,以前折腾qt5ct的时候给qt设置gtk主题就是要装一个包才行,不然qt没法直接用

使用 FastHub 从我的 Nubia NX563J 发送

felixonmars commented 7 years ago

@1377195627 请看我刚才说的第一点……

xiayesuifeng commented 7 years ago

@felixonmars 额,,,,不是说能解决第2点就行了吗,

使用 FastHub 从我的 Nubia NX563J 发送

felixonmars commented 7 years ago

请稍微看仔细一点认真一点…

zccrs commented 7 years ago

@felixonmars 设置环境变量 QT_QPA_PLATFORMTHEME 为 gtk2 呢?

felixonmars commented 7 years ago

@zccrs 可以的,设置 QT_STYLE_OVERRIDE 也可以。

JulianLai commented 7 years ago

@zccrs @felixonmars 但我 QT_QPA_PLATFORMTHEME 和 QT_STYLE_OVERRIDE 都設置後某些程序還是不會套用耶,就如同上面我貼的

xiayesuifeng commented 7 years ago

@JulianLai QT_QPA....设置成dxcb试试

使用 FastHub 从我的 Nubia NX563J 发送

zccrs commented 7 years ago

@JulianLai 比如哪些程序?

JulianLai commented 7 years ago

@zccrs

  1. dock 上面 app 的右鍵選單(譬如在 deepin-file-manager 圖示上按右鍵) deepinscreenshot_20170731081245

  2. 提示視窗,例如: deepinscreenshot_20170731081136 deepinscreenshot_20170731081647 字體還是一樣小

hualet commented 7 years ago

上面这些跟程序不响应控制中心字体大小设置不是一回事,这些是因为字体大小写死了; 在DDE里,QT程序的platformtheme应该会自动切到deepin提供的platformtheme(进而设置了gtk2为默认的style)才对;感觉跟上面哪个QT_QPAT_PLATFORMTHEME环境变量被清空有关?

felixonmars commented 7 years ago

设置 QT_QPA_PLATFORMTHEME=deepin 也不能正确显示主题,只能设置成 QT_QPA_PLATFORMTHEME=gtk2。看来问题出在 deepin 提供的 platformtheme 没有设置 style 为 gtk2?

felixonmars commented 7 years ago

顺着这个思路找到问题了,qt5integration 代码中用的是 Qt 5.6 及以前版本的老 style 名 "GTK+",新的 qt5-styleplugins 中的 gtk2 主题名叫 "gtk2",所以设置失败了。

补丁已提交:https://cr.deepin.io/25147

Arch 包已经在 deepin-qt5integration 0.2.2-2 中临时 workaround。

JulianLai commented 7 years ago

@felixonmars 請問 qt5-styleplugins 變成必要的包了嗎?我發現嘗試移除他會把控制中心也刪掉

felixonmars commented 7 years ago

@JulianLai 对,加到 qt5integration 的直接依赖了,因为代码里直接用到了……

jouyouyun commented 6 years ago

@felixonmars is it fixed?

hualet commented 6 years ago

已经把几个字体大小写死的地方改了,应该大部分地方都没有问题了(除了launcher)

JulianLai commented 6 years ago

@hualet 還有這邊 deepin _20171108174837 和這邊 deepin _20171108180428

zccrs commented 6 years ago

@JulianLai 是这俩对话框把字号写死了

laichiaheng commented 6 years ago

又發生類似狀況了

justforlxz commented 3 years ago

Sorry, this issue will be closed soon. If it is necessary to discuss it again, please create a new issue.