cht電腦資訊gcin
adm Find login register

PyQt4 + gcin issue

guest
1subject: PyQt4 + gcin issuePromote 0 Bookmark 02010-09-29quote  

想問個gcin不能輸入的問題

 

目前我在開發一些使用PyQt4的程式

我發現到自從我換了Ubuntu 10.04 LTS後

Ubuntu內建的gcin在任何使用PyQt4的程式中都無法輸入中文

所有按鍵都變成直接輸入英文字母,且不能切換輸入法

然而使用C++/Qt4寫成的程式卻沒有這問題

gcin-qt4-immodule 也裝過了

有什麼解法嗎?

 

OS: Ubuntu 10.04 (tried without and with package upgrade)
gcin: Ubuntu 10.04 內建
PyQt4: 4.7.2~4.7.7都試過了

先謝謝開發團隊了

eliu

joined: 2007-08-09
posted: 11482
promoted: 617
bookmarked: 187
新竹, 台灣
2subject: Promote 0 Bookmark 02010-09-29quote  

用 lsof -p 看 im-gcin.so 有沒有 load 進來

guest
3subject: Promote 0 Bookmark 02010-10-01quote  

有load到

python 30823 user1 mem REG 8,4 18880 131413 /usr/lib/gtk-2.0/2.10.0/immodules/im-gcin.so

可是gcin沒有反應

eliu

joined: 2007-08-09
posted: 11482
promoted: 617
bookmarked: 187
新竹, 台灣
4subject: Promote 0 Bookmark 02010-10-01quote  

這個是給 GTK 用的 im-gcin.so

 

QT4 是這一個

/usr/lib/qt4/plugins/inputmethods/im-gcin.so

guest
5subject: Promote 0 Bookmark 02010-10-01quote  

的確沒有load到

有可能是什麼原因讓C++/Qt正常load im-gcin.so可是PyQt4沒有load到的情形發生?

XMODIFIERS=@im=gcin

QT_IM_MODULE=gcin

我都有設定,且存在於env變數

eliu

joined: 2007-08-09
posted: 11482
promoted: 617
bookmarked: 187
新竹, 台灣
6subject: Promote 0 Bookmark 02010-10-01quote  

ldd /usr/lib/qt4/plugins/inputmethods/im-gcin.so

看是否有 .so 找不到

swyear
joined: 2007-10-04
posted: 127
promoted: 4
bookmarked: 0
7subject: Promote 0 Bookmark 02010-10-01quote  

會不會是 http://hyperrate.com/thread.php?tid=19975 的問題?

guest
8subject: Promote 0 Bookmark 02010-10-05quote  

ldd /usr/lib/qt4/plugins/inputmethods/im-gcin.so

linux-vdso.so.1 =>  (0x00007f9b582b7000)

libgcin-im-client.so.1 => /usr/lib/gcin/libgcin-im-client.so.1 (0x00007f9b57ea6000)

libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f9b57c70000)

libc.so.6 => /lib/libc.so.6 (0x00007f9b578ec000)

libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f9b575b6000)

/lib64/ld-linux-x86-64.so.2 (0x00007f9b582b8000)

libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f9b5739a000)

libdl.so.2 => /lib/libdl.so.2 (0x00007f9b57195000)

libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f9b56f91000)

libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f9b56d8b000)

有列出來的dependency就這些東西

沒特別提示有哪個lib無法load

 

C++/Qt程式一樣能吃gcin送來的字

Python/Qt的程式還是對gcin沒有反應,而且也不能在該程式視窗是activate時切換輸入法

eliu

joined: 2007-08-09
posted: 11482
promoted: 617
bookmarked: 187
新竹, 台灣
9subject: Promote 0 Bookmark 02010-10-05quote  

用 strace 看能不能找到線索

caleb
joined: 2007-09-22
posted: 630
promoted: 134
bookmarked: 90
10subject: Promote 0 Bookmark 02010-10-05quote  

試試 swyear 提的,把 Qt4 link 進去。

目前已知一般 GTK+/Qt apps 都可以直接吃「沒 link GTK+/Qt」的 immodule,

但如果是用 dlopen() 之類的讀 immodule,就可能會因為「沒 link GTK+/Qt」而有 function() 抓不到。

例如 openoffice / libreoffice 就只能吃「有 link GTK+」的 immodule。

「沒 link GTK+/Qt」的好處是,可以包在同一個 package, 不會為了安裝 gcin 而得順便安裝 GTK+2 / GTK+3 / Qt3 / Qt4

「有 link GTK+/Qt」往往就得把 gcin package 拆分成 gcin(主程式) / GTK+? immodule / Qt3 immodule / Qt4 immodule

guest
11subject: Promote 0 Bookmark 02010-10-06quote  

後來重新build gcin 1.5.6之後就正常了

奇怪的是移除自己build的gcin之後,砍光所有有install跟還原設定到的檔案後,問題還是不會再復發

所以目前還是無法確定問題在哪裡

不論如何,先謝謝樓上的先進了

cht電腦資訊gcin
adm Find login register
views:24600