Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

無法在Qt5程式中正常啟動/運作 #584

Closed
Lafudoci opened this issue May 5, 2019 · 32 comments
Closed

無法在Qt5程式中正常啟動/運作 #584

Lafudoci opened this issue May 5, 2019 · 32 comments
Labels

Comments

@Lafudoci
Copy link

Lafudoci commented May 5, 2019

OS: elementary os juno (based on ubuntu 18.04)
Kernal: 4.15.0-48-generic
HIME version: 0.9.10+git20170427+dfsg1-2build4
Affected APP: Spotify, VLC, MoneroGUI

GLib-GObject-WARNING **: 19:44:00.522: cannot register existing type 'GtkIMContext'
GLib-CRITICAL **: 19:44:00.522: g_once_init_leave: assertion 'result != 0' failed
GLib-GObject-CRITICAL **: 19:44:00.522: g_type_register_dynamic: assertion 'parent_type > 0' failed
GLib-GObject-CRITICAL **: 19:44:00.522: g_object_new_with_properties: assertion 'G_TYPE_IS_OBJECT (object_type)' failed

似乎有幾個issue是類似的問題,但沒有看到後續處理,請問這個輸入法還有開發者在維護嗎? HIME是我換到linux後最順手的輸入法,希望有機會能夠解決,謝謝!

@marktwtn
Copy link
Contributor

marktwtn commented May 5, 2019

目前比較處在沒有維護的狀態,但我還是會注意新的 issue
有什麼新發現會更新到這裡

@marktwtn marktwtn added the bug label May 5, 2019
@marktwtn
Copy link
Contributor

marktwtn commented May 5, 2019

Duplicate of #580 .

@Tetralet
Copy link
Contributor

Tetralet commented May 6, 2019

QT5 module 在我的系統上是可以動的。所以我論或許是因為 ABI 相容性的關係?

可以試試:(個人建議還是自行編譯比較好?)

deb [arch=amd64,i386] https://debian.luna.com.tw/bionic ./
deb-src https://debian.luna.com.tw/bionic ./

上述站台因為把套件簡化成 hime 及 libhime:amd64 / libhime:i386,
請務必先把系統裡的 hime 相關套件全數移除掉再安裝以上套件。

@Lafudoci
Copy link
Author

Lafudoci commented May 6, 2019

@Tetralet 謝謝回覆,我把舊的hime全數移除後安裝您提供的版本並重開機
hime 0.9.10+git20180711-0~1libhime 0.9.10+git20180711-0~1都是amd64
但目前問題依舊。如果還有什麼可能的解法還請多指教,謝謝!

@Tetralet
Copy link
Contributor

Tetralet commented May 7, 2019

請問您用的 QT5 是哪個軟體?
檢查一下是否有設定好 QT_IM_MODULE 環境變數?

export QT_IM_MODULE=hime

@Lafudoci
Copy link
Author

Lafudoci commented May 7, 2019

目前試過就issue所述的這幾個
Affected APP: Spotify, VLC, MoneroGUI

沒注意過需要環境變數這件事情,晚上回去立刻檢查!
謝謝您的熱心協助。

請問您用的 QT5 是哪個軟體?
檢查一下是否有設定好 QT_IM_MODULE 環境變數?

export QT_IM_MODULE=hime

@marktwtn
Copy link
Contributor

marktwtn commented May 7, 2019

如果問題出在這個地方的話,設定環境變數的資訊可能要加到 README.md 或是 wiki 中?

@Lafudoci
Copy link
Author

Lafudoci commented May 7, 2019

可惜,似乎不是這個問題,我開機後查詢已經有該項變數了

declare -x CLUTTER_IM_MODULE="xim"
declare -x GTK_IM_MODULE="hime"
declare -x IM_CONFIG_PHASE="2"
declare -x QT4_IM_MODULE="hime"
declare -x QT_IM_MODULE="hime"
declare -x TEXTDOMAIN="im-config"
declare -x XMODIFIERS="@im=hime"

@Tetralet
Copy link
Contributor

Tetralet commented May 7, 2019

我還是覺得可能是 ABI 相容性的關係。
請問您系統上 QT5 的版本是?

dpkg -l libqt5core5a

@Lafudoci
Copy link
Author

Lafudoci commented May 7, 2019

5.9.5+dfsg-0ubuntu amd64
我不太懂 ABI 相容性這部份,不過如果您有什麼想法我很樂意提供資訊協助釐清問題。

我還是覺得可能是 ABI 相容性的關係。
請問您系統上 QT5 的版本是?

dpkg -l libqt5core5a

@Tetralet
Copy link
Contributor

Tetralet commented May 7, 2019

QT5 的 im module 後來變成綁定 QT5 的版本。
也就是如果版號不同,QT5 的 im module 就有可能起不來。

但 Ubuntu 18.04 (Bionic) 的 QT5 版本也是 5.9.5+dfsg-0ubuntu1,
所以可能問題不出在這... 我找時間確認一下好了。

@Tetralet
Copy link
Contributor

Tetralet commented May 9, 2019

請再試一次:

  1. 確認已把系統中所有的 hime 套件都移除掉。
apt-get purge *hime*
  1. 新增 /etc/apt/sources.list.d/luna.list 如下:(因為 Ubuntu 不知為啥沒包到 hime-qt4-immodule。)
deb [arch=amd64,i386] https://debian.luna.com.tw/bionic ./
deb-src https://debian.luna.com.tw/bionic ./
  1. 匯入 Luna 的 GPG Key(風險自負!不過裡面只有 hime 和 LilyTerm 這兩個軟體):
wget -O - https://debian.luna.com.tw/GPGKey.gpg | apt-key add -
  1. 更新並安裝 hime:
 apt-get update
 apt-get install hime
  1. 確認 hime 版本:
hime:
  Installed: 0.9.10+git20180711-0~1
  Candidate: 0.9.10+git20180711-0~1
  Version table:
 *** 0.9.10+git20180711-0~1 500
        500 https://debian.luna.com.tw/bionic ./ Packages
        100 /var/lib/dpkg/status
     0.9.10+git20170427+dfsg1-2build4 500
        500 http://tw.archive.ubuntu.com/ubuntu bionic/universe amd64 Packages
  1. 在【語言支援】→【鍵盤輸入法系統】中選取【hime】
  2. 重開機!

@Lafudoci
Copy link
Author

Lafudoci commented May 9, 2019

好的,今晚回去測試,會再回報結果給您,謝謝!

@Lafudoci
Copy link
Author

Lafudoci commented May 9, 2019

@Tetralet 您好,結果似乎還是一樣的結果
以下附上版本資訊

hime:
  已安裝:0.9.10+git20180711-0~1
  候選: 0.9.10+git20180711-0~1
  版本列表:
 *** 0.9.10+git20180711-0~1 500
        500 https://debian.luna.com.tw/bionic ./ Packages
        100 /var/lib/dpkg/status
     0.9.10+git20170427+dfsg1-2build4 500
        500 http://tw.archive.ubuntu.com/ubuntu bionic/universe amd64 Packages

另外,由於elementary os 設定沒有【語言支援】這項,因此是用im-config -n hime做切換。

@Tetralet
Copy link
Contributor

Tetralet commented May 10, 2019

把 ibus 移掉試試看?

apt-get purge ibus

@Lafudoci
Copy link
Author

一陣子前ibus就已經移除了

目前系統上的輸入法:
fcitx hime thai xim

把 ibus 移掉試試看?

@Tetralet
Copy link
Contributor

完全搞不懂。因為我找了台電腦灌了 ElementaryOS,完全沒問題說... ??

@Lafudoci
Copy link
Author

完全搞不懂。因為我找了台電腦灌了 ElementaryOS,完全沒問題說... ??

天阿... 是ubuntu原生版本hime就可以正常在QT5使用嗎?
順帶一提,我的 spotify 和 vlc 是 snap 版本,測試時spotify在搜尋歌曲的地方沒有辦法用ctrl+space啟動中文輸入

@Tetralet
Copy link
Contributor

Tetralet commented May 10, 2019

天阿... 是ubuntu原生版本hime就可以正常在QT5使用嗎?

是的,只是它沒有包到 qt4 im module。

順帶一提,我的 spotify 和 vlc 是 snap 版本,測試時spotify在搜尋歌曲的地方沒有辦法用ctrl+space啟動中文輸入

但 QT5 的版本號有變嗎?貼一下:

apt-cache policy libqt5gui5

@Lafudoci
Copy link
Author

在此

libqt5gui5:
  已安裝:5.9.5+dfsg-0ubuntu2
  候選: 5.9.5+dfsg-0ubuntu2
  版本列表:
 *** 5.9.5+dfsg-0ubuntu2 500
        500 http://tw.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     5.9.5+dfsg-0ubuntu1 500
        500 http://tw.archive.ubuntu.com/ubuntu bionic/main amd64 Packages

我剛剛發現如果自行編譯MoneroGUI就不會發生issue開頭那篇錯誤訊息,也可以正常啟動hime輸入中文,編譯時使用版本是Qt5.9.5,我也搞糊塗了。

@Lafudoci
Copy link
Author

發現新的受到影響的軟體: libreoffice-6.2.3.2-snap1
跟 spotify, vlc 一樣的症狀,然後剛剛有試過spotify改裝apt來源也是一樣的問題

@Tetralet
Copy link
Contributor

因為 QT5 的輸入法函式庫是放在 qtbase5-private-dev 裡,(看名字就知道很不妙)
所以當時 HIME 的開發者就斷言:『一定會有很麻煩的 ABI 相容性問題』。
這也是大概這些 BUG 被視而不見的原因-因為不知該怎麼辨 XD

可能那些軟體用其它版本的 QT5 編的?(有辨法問問編譯者嗎?)
但我不知道影響那麼大就是了。有人可以解釋一下嗎?

@Lafudoci
Copy link
Author

順著 libre office 問題找到這兩個中文輸入問題回報
https://bugs.documentfoundation.org/show_bug.cgi?id=121161
https://bugs.documentfoundation.org/show_bug.cgi?id=122698
我在想或許我遇到的不全然是 Qt 和輸入法端的問題
不過我只要換成 ficitx 就都可以正常輸入中文

@Lafudoci
Copy link
Author

@Tetralet 可以請您幫忙測試 elementary os 上的 LibreOffice 是否可以使用HIME輸入中文嗎?

@Tetralet
Copy link
Contributor

不過我只要換成 ficitx 就都可以正常輸入中文

據說 fcitx 是呼叫 QtDBus,所以相容性較好;
hime 是直接呼叫 QPlatformInputContext,所以就和 QT 的 QPA API 綁在一起了。

@Tetralet
Copy link
Contributor

@Tetralet 可以請您幫忙測試 elementary os 上的 LibreOffice 是否可以使用HIME輸入中文嗎?

libreoffice-gtk2 套件會讓事情快樂很多喔!

@brchiu
Copy link

brchiu commented May 11, 2019

先前我在 Ubuntu 上使用 home 的時候,Virtual Box 還有 Kolourpaint 兩個應用程式,與 issue #580 類似,在想要存檔或開檔,打開檔案對話方塊時,程式會當掉,錯誤訊息與 #580 相同,也試過重新安裝,或自己編譯 hime,皆不得解。最後也是改用 ficitx。

@Tetralet
Copy link
Contributor

先前我在 Ubuntu 上使用 home 的時候,Virtual Box 還有 Kolourpaint 兩個應用程式,與 issue #580 類似,在想要存檔或開檔,打開檔案對話方塊時,程式會當掉,錯誤訊息與 #580 相同,也試過重新安裝,或自己編譯 hime,皆不得解。最後也是改用 ficitx。

請問 Virtual Box 和 Kolourpaint 也是用 snap 版的嗎?

@brchiu
Copy link

brchiu commented May 11, 2019

Koloupaint 是透過 apt-get install 安裝的,Virtualbox 是從 Oracle VirtualBox 網站上下載 deb 檔,再用 dpkg -i 指令安裝。

Hime 導致當機這個問題印象中是在升級 17.x (忘記是哪一個) 突然出現,不知是否跟底層 gtk 轉換到 qt (?) 有關?

話說,wireshark 有 wireshark-gtk 與 wireshark-qt 兩個版本,在輸入法還在使用
hime 的時候,我只能用 gtk 版,不然 qt 版想要把封包存檔也是會當掉。

晚上回去再用 gdb 把當掉時的 call stack 記錄一下。

@Lafudoci
Copy link
Author

libreoffice-gtk2 套件會讓事情快樂很多喔!

謝謝! 確實改安裝gtk2版本後HIME就恢復正常了!

@Tetralet
Copy link
Contributor

Hime 導致當機這個問題印象中是在升級 17.x (忘記是哪一個) 突然出現,不知是否跟底層 gtk 轉換到 qt (?) 有關?

Hime 一直是 GTK2+ based。
不建議用 GTK3+ 來編譯 Hime,奇怪的問題太多了。

@xatier
Copy link
Contributor

xatier commented May 19, 2020

我儘量讓 gtk2/gtk3 都能 build (在 Arch 上 gtk3 build 不起來,有些東西被 deprecated 掉了)。

先關單XD

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants