質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Q&A

解決済

1回答

3000閲覧

anaconda の tkinter のフォントについて

退会済みユーザー

退会済みユーザー

総合スコア0

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

0グッド

0クリップ

投稿2021/04/01 02:38

前提・実現したいこと

anaconda の tkinter のフォントを美しくしたいと思っています。
同じプログラムでも、anaconda3 を使う場合と linux mint 20.1 の python3.8 を使う場合では、以下のようにかなり異なります。

anaconda3
イメージ説明
linux mint 20.1 のデフォルトの python 3.8 に tkinter をインストールした場合
イメージ説明

発生している問題・エラーメッセージ

エラーではないのですが、anaconda 上の tkinter を使うとフォントのアンチエイリアスが効きません。 また、フォントの種類も20種類しかありません。 さらにわからないのは、anaconda の tkinter のタイトルはきれいに表示されることです。

該当のソースコード

import tkinter as tk root = tk.Tk() root.geometry("300x100") root.title("rootタイトル") label1 = tk.Label( text='Helloこんにちは', font=("",20) ) label1.grid() root.mainloop()

試したこと

20種類のフォントをいろいろ試してみたのですが、基本的には変わりませんでした。
それとネット上に情報があまりないのでどうしたらいいのかがよくわかりませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/04/02 04:01

御提示頂いたサイトは私も見たことがありますが、これまで試しておりませんでした。 今回やってみたところ、virutualbox の linux mint 19.3 では失敗しますが、host の linux mint 20.1 では次の一行で成功します。 sudo cp /usr/lib/x86_64-linux-gnu/libtk8.6.so /home/user/anaconda3/lib いろいろ実験すると、libtk8.6.so がフォント設定ファイルであることがわかりました。 virtualbox の linux mint 19.3 では、なぜか/usr/lib/x86_64-linux-gnu/libtk8.6.so そのものが存在しません。 そこで、host の libtk8.6.so を linux mint 19.3 に手動で移設したのですが、やはり文字はギザギザですね。ただ、virtualbox って動作がおかしいことがよくあるので、そのままは信用できません。 一度、linux mint 19.3 を本体にクリーンインストールしてやってみます。
jbpb0

2021/04/02 04:27 編集

> host の linux mint 20.1 では次の一行で成功します。 それをやると、host の Anaconda の tkinter でフォントのアンチエイリアスが効くようになるのですか? > virtualbox の linux mint 19.3 では、なぜか/usr/lib/x86_64-linux-gnu/libtk8.6.so そのものが存在しません。 linux mint 19.3 の(Anaconda ではない)Python で tkinter が使えるのなら、どこかに libtk*.so があるはずです (数字は 8.6 ではないかもしれない) > host の libtk8.6.so を linux mint 19.3 に手動で移設した とは、virtualbox の linux mint 19.3 にも Anaconda をインストールしていて、その Anaconda のどこかのディレクトリにも libtk8.6.so があり、それを host の /usr/lib/x86_64-linux-gnu/libtk8.6.so で置き換えた、ということですか?
退会済みユーザー

退会済みユーザー

2021/04/02 05:52

一部おかしなことを書き込んでおり失礼しました。 host には「sudo apt-get -y install python3-tk」で tkinter をインストールしていたのですが、virtualbox の linux mint 19.3 にはインストールしていなかったので、libtk8.6.so が anaconda 内にしかないのは当然でした。 そこで、linux mint 19.3 にも「sudo apt-get -y install python3-tk」で tkinter をインストールし、 sudo cp /usr/lib/x86_64-linux-gnu/libtk8.6.so /home/user/anaconda3/lib としてみたのですが、 This probably means that tk wasn't installed properly. というエラーメッセージが出ます。 これは、virtualbox 内の linux mint 19.3 でも、host に linux mint 19.3 をクリーンインストールしても同じようです。 ところが、host に linux mint 20.1 をインストールして、tkinter もインストールし、 sudo cp /usr/lib/x86_64-linux-gnu/libtk8.6.so /home/user/anaconda3/lib とすると、ギザギザにはなりません。 /home/user/anaconda3/lib/libtk8.6.so がない場合は、自動的に /usr/lib/x86_64-linux-gnu/libtk8.6.so を読み込むようなので、そのファイルを rename して実験してみましたが、やはり linux mint 20.1 の場合は、/usr/lib/x86_64-linux-gnu/libtk8.6.so の単純コピーで希望通りになるようです。 ということは、linux mint のバージョンと anaconda のバージョンを合わせる必要があるのではないかと思っています。
退会済みユーザー

退会済みユーザー

2021/04/02 06:50

これまでは anaconda の最新バージョンをインストールしていたのですが、試しに少し古い「Anaconda3-2019.03-Linux-x86_64.sh」をダウンロードしたところ思い通りの結果になりました。 /usr/lib/x86_64-linux-gnu/libtk8.6.so をそのまま anconda にコピーすればアンチエイリアスが効きます。 linux mint 19.3 の python3 は 3.6 ですが、「Anaconda3-2019.03-Linux-x86_64.sh」をインストールすると anaconda の python は 3.7 になります。anaconda の最新バージョンにすると python は 3.8 になるので、その辺が関係しているのかもしれません。 とにかく、おかげさまで思い通りの結果を得ることができました。 お付き合い頂きましてありがとうございました。
guest

回答1

0

ベストアンサー

jbpb0 さん、どうもありがとうございました。
あなたのおかげで解決することができました。

正式回答として登録されていないようで、こういう場合どうしたらいいのかわかりませんが、よくわからないので自己解決とさせて頂きました。

投稿2021/04/03 11:25

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問