cht電腦資訊gcin
adm Find login register

在基於較新版qt 5.9.1的軟體中無法輸入中文

guest
1subject: 在基於較新版qt 5.9.1的軟體中無法輸入中文Promote 0 Bookmark 02017-11-22quote  

原本使用digikam 5.5.0及kdenlive 15.12.3( 基於qt 5.5.1),在安裝了gcin-qt5-immodule可正常輸入中文,最近試了一下最新版的digikam 5.7.0(基於qt 5.9.1)卻又發生無法輸入中文之現象,是否為現有的函式庫無法支援新版qt之故?

guest
2subject: Promote 0 Bookmark 02017-11-29quote  

根據 阿吉部落格 的說法,需要將 qt5-im/gcin-qt5.h 中的 IID 版本,改成 org.qt-project.Qt.QPlatformInputContextFactoryInterface.5.1

這樣才可以在qt 5.9.x 正確執行。

另外在archlinux的PKGBUILD中"patch -p1 -i ../qt-5.5.patch"非常奇怪的沒有執行,

所以我根據 阿吉的網頁的寫法修正成 sed -i 's/org.qt-project.Qt.QPlatformInputContextFactoryInterface/&.5.1/' qt5-im/gcin-qt5.h.in

這樣用qtplugininfo檢查libgcinplatforminputcontextplugin.so時就可以看到

IID "org.qt-project.Qt.QPlatformInputContextFactoryInterface.5.1" Qt 5.9.3 (debug)
User Data: {
    "Keys": [
        "gcin"
    ]
}

這時重新編譯gcin就可以在qt 5.9.x下正確執行。


guest
3subject: Promote 0 Bookmark 02017-11-30quote  

哇!這樣看來解決這問題已是開發者的層級了,小的只是基層的使用者,就靜待gcin改版了。

guest
4subject: Promote 0 Bookmark 02017-12-05quote  

guest

根據 阿吉部落格 的說法,需要將 qt5-im/gcin-qt5.h 中的 IID 版本,改成 org.qt-project.Qt.QPlatformInputContextFactoryInterface.5.1

這樣才可以在qt 5.9.x 正確執行。

另外在archlinux的PKGBUILD中"patch -p1 -i ../qt-5.5.patch"非常奇怪的沒有執行,

所以我根據 阿吉的網頁的寫法修正成 sed -i 's/org.qt-project.Qt.QPlatformInputContextFactoryInterface/&.5.1/' qt5-im/gcin-qt5.h.in

這樣用qtplugininfo檢查libgcinplatforminputcontextplugin.so時就可以看到

IID "org.qt-project.Qt.QPlatformInputContextFactoryInterface.5.1" Qt 5.9.3 (debug)
User Data: {
    "Keys": [
        "gcin"
    ]
}

這時重新編譯gcin就可以在qt 5.9.x下正確執行。


had patched like your way, but still didnt work with QT-5.9.3 under Archlinux, can you share PKGBUILD? thanks.

 

guest
5subject: Promote 0 Bookmark 02017-12-15quote  

guest

 

had patched like your way, but still didnt work with QT-5.9.3 under Archlinux, can you share PKGBUILD? thanks.

 

Archlinux had qt-5.10 update & gcin-2.8.5-2 rebuild with patch, but stall no go.

 

guest
6subject: Promote 0 Bookmark 02017-12-21quote  

以下是從 Archlinux的ABS上拿到的PKGBUILD,紅色部份是經過修改後的結果:

# $Id$
# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Gaetan Bisson <bisson@archlinux.org>
# Contributor: Andreas Radke <andyrtr@archlinux.org>
# Contributor: damir <damir@archlinux.org>

pkgname=gcin
pkgver=2.8.5
pkgrel=1
pkgdesc='Input method server supporting various input methods'
url='http://hyperrate.com/dir.php?eid=67'
license=('LGPL')
arch=('i686' 'x86_64')
depends=('gtk2' 'libxtst')
makedepends=('qt5-base' 'qt4' 'gtk3' 'anthy' 'libchewing')
optdepends=('qt5-base: support for qt5 input method'
            'qt4: support for qt4 input method'
            'gtk3: support for gtk3 input method'
            'anthy: support for anthy input method'
            'libchewing: support for chewing input method')
source=("http://hyperrate.com/gcin-source/${pkgname}-${pkgver}.tar.xz"
        qt-5.5.patch)
sha1sums=('0bed162df43e3d5f65ff9f183b7957cdd9678731'
          'fd29b91d7b573546ecb3a8cb0341d4f11364cd1a')

install=install
prepare() {
    cd "${srcdir}/${pkgname}-${pkgver}"
    sed 's/lib64/lib/g' -i configure
    sed '/include suffixes-rule/a \
        CFLAGS+='"${CFLAGS}"' \
        LDFLAGS+='"${LDFLAGS}"' \
        OPTFLAGS=' \
        -i Makefile
    sed \
        -e 's:usr/include/qt5:usr/include/qt:g' \
        -e 's:QT=qt5:QT=qt:' \
        -e '/^MODVERSION=/a INCS+=-I/usr/include/qt/QtGui/$(MODVERSION) -I/usr/$
        -i qt5-im/Makefile
    sed \
        -e 's/org.qt-project.Qt.QPlatformInputContextFactoryInterface/&.5.1/' \
        -i qt5-im/gcin-qt5.h.in

    # FS#45732
    patch -p1 -i ../qt-5.5.patch

    # Qt 5.6 doesn't provide Qt5PlatformSupport.pc anymore
    sed -i 's/Qt5PlatformSupport//' qt5-im/Makefile
}

build() {    cd "${srcdir}/${pkgname}-${pkgver}"
    ./configure --prefix=/usr --use_i18n=Y
    make
}

package() {
    cd "${srcdir}/${pkgname}-${pkgver}"
    make DESTDIR="${pkgdir}" install
}
         

以上會經由makepkg -s後組成gcin-2.8.5-1-x86_64.pkg.tar.xz

sudo pacman -U gcin-2.8.5-1-x86_64.pkg.tar.xz安裝後

執行qtplugininfo /usr/lib/qt/plugins/platforminputcontexts/libgcinplatforminputcontextplugin.so

我在4.14.6-1-ARCH上面執行正常。

guest
7subject: Promote 0 Bookmark 02018-01-04quote  

我在 Arch Linux 上安裝 gcin 2.8.5-2,

在使用 Qt 5.10.0 的應用程式時也遇到這個問題了,

樓上附的這個 patch 幫助我順利解決了問題,

真的很感謝。

然後我花了點時間發了個 bug report:https://bugs.archlinux.org/task/56949

想說回覆在這邊更新一下狀況。

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