1

Python2.7/Tkinter でアプリケーションを作成しました。私は 2 台の Linux マシンを持っています:
Python 2.7.4 を搭載した Xubuntu 1 台 Python 2.7.1 を搭載した CentOS (5.2) 1 台 (残念ながら、誰かが尋ねる前に、このマシンをアップグレードすることはできません)

WindowsXP ラップトップから SSH 経由で両方のマシンに接続し、ディスプレイをエクスポートします。Xming は、X サーバーとして Windows マシンにインストールされます。スクリプトは両方のマシンでまったく同じです (両方のマシンにマウントされた共有ドライブ)。

私が持っているスクリプトでは:

# show which fonts the system know 
print tkFont.families()
# configure the default font
default_font = tkFont.nametofont("TkDefaultFont")
default_font.configure(family="Liberation Sans", size="10")
master.option_add("*Font", default_font)

フォント「Liberation」は Linux マシンと Xming の両方にインストールされています (そして構成されています)。
アプリケーションではグリッド マネージャーを使用したため、フォントは結果のインターフェイスに大きな影響を与えます。

Xubuntu からアプリケーションを起動すると:

  • アプリケーション インターフェイスは非常に見栄えがします。tkFont.familiesXming にインストールされていない (Xubuntu にある) いくつかのフォントを教えてください。

CentOs からアプリケーションを起動すると:

  • アプリケーション インターフェイスは見苦しく、ほとんど判読できず、完全に変形しています。tkFont.familiesXmingにインストールおよび構成されている場合にのみ、リストに「liberation」フォントを表示します。

私は今朝からこれについて頭を悩ませています.liberation*.ttfファイルをXubuntuから他のすべてのマシンにコピーしましたが、成功しませんでした

私のインターフェースが両方で同じに見えるという、2台のマシン間のこの違いをどのように抑制できますか?

どんな助けでも大歓迎です

4

1 に答える 1

1

推測では、サーバー側の tk インストールは X Core フォント サブシステムに依存してフォントをレンダリングします (これが xming フォントを表示する理由です)。

このサブシステムはずっと前に fontconfig に置き換えられました (ただし、tk は切り替えが非常に遅れていました)。Centos 5.2 はおそらく十分に古く、その tk バージョンはまだ X Core フォント サブシステムに依存しています。しかし、Fedora と Red Hat は、かなり前にシステムの TrueType フォントを X Core フォントとして公開することをやめました (それはレガシー アプリケーションを破壊していました)。

あなたの解決策は次のとおりです。

– fontconfig を使用できる tk にアップグレードする (または fontconfig を使用するように再構成する) : この方法では、Liberation http://wiki.tcl.tk/9015を含む、Centos にインストールされている最新のフォントが表示されます。

– または、すべてのレガシー マジックを実行して xfs で解放フォントを公開します (2000 年より前のすべての Linux フォント ハウツーに記載されているように、mkfontdir およびその仲間)。X コアのフォント システムはそれほど堅牢ではありません。

https://www.centos.org/docs/5/html/5.2/Deployment_Guide/s1-x-fonts.html

中期的には、x コア フォントが間もなくリリースされるため、とにかく fontconfig の方法でそれを行う必要があります (2007 年頃に RHEL 5 がリリースされたときはすでにそうでした)。

于 2013-06-24T17:14:48.800 に答える