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

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

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

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Q&A

1回答

724閲覧

Tkinter8.6の表示

退会済みユーザー

退会済みユーザー

総合スコア0

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

0グッド

0クリップ

投稿2020/01/30 11:10

編集2020/01/31 14:08

概要

macでtkinterのアプリケーションを開発中です。
png画像を載せたいと考え、8.6にアップデートしました。
その際、こちらの記事に従い、python, pyenvを一旦アンインストールしました。

アップデートはできたのですが、XQuartz経由で起動するようになってしまいました。

試したこと

もとのように通常のウィンドウ(リンク先参照)に戻したいと思い、自動起動をオフにしたところ

_tkinter.TclError: couldn't connect to display "/private/tmp/com.apple.launchd.CbleIgSpOn/org.macosforge.xquartz:0"

このようなエラーが出て戻せなくなりました。
ローカルホストにも設定してみましたが、

_tkinter.TclError: couldn't connect to display "localhost:0.0"

同じくエラーになります。

目標

ひとまずはアプリを起動させたいため、

  • XQuartzの自動起動をオンにする方法
  • tkinterアプリを通常のmacウィンドウで表示する方法

どちらかご存知の方がいらっしゃいましたらご教授いただけると幸いです。

環境

  • Mac OS Mojave 10.14.6
  • Python 3.6.0
  • tkinter 8.6

追記(2020/01/31)

  • Python, tcl-tkはどちらもHomebrew経由でアンインストール→pyenvに再インストールしました。

XQuartzの自動起動の件は、本日Macを再起動したところ解決しました。
環境変数DISPLAYを書き換えてしまったことが原因のようで、再起動でリセットされ元に戻るようです。

よって、アプリの起動はできるようになったのですが、

XQuartzで起動されるTkinterアプリケーション

現在、このようにXQuartzで実行されていて、解像度が悪いので
こちらのご質問のアプリケーションのようなウィンドウに戻したいです。

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

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

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

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

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

quickquip

2020/01/30 12:10 編集

pythonをどうやってインストールしたのか、Tcl/Tkはどうしたのか、質問に追記してもらえますか
guest

回答1

0

ちょっと長いので回答にします。

あなたが参考にしたという2つのページに書いてあることと、質問に書いてあることがかみ合ってなさすぎていったい何をしたのかまったく想像できない、という感想です。

https://qiita.com/person0/items/4a8d4bf490510e8f71ab
をみる限り "homebrewで入るTcl/Tk" を使うように "homebrewのPython fromula" を書き換えて、バージョンを固定した上で、ソースからビルドさせる手順に見えます。
なのでこの手順の後で使うPythonはHomebrewのもの/usr/local/bin/pythonであるはずです。

そしてビルドスクリプトを見た感じだと3.8.1のソースをダウンロードしてビルドしそうです。

質問の「Python 3.6.0」「pyenvに再インストールしました」と食い違っています。
(ビルドしたpythonを使わずにpyenvで3.6.0を入れ直した? それとも、3.8.1ではなく3.6.0をビルドするように書き直した?)


https://tkdocs.com/tutorial/install.html

こちらも、(上で "homebrewで入るTcl/Tk" を使うように設定したはずなのに)別のTcl/Tk(Active Tcl)をインストールする手順が書いてあるように読めます。
そして、このページを見てなにをしたのかまったく不明です。

("homebrewで入るTcl/Tk" を捨てて Active Tcl を入れた?)


ここで必要なのはあなたがやったことの情報であって、あなたが参考にしたページは回答者にしてみたら基本的に役に立つようなものではないです。
技術的な質問というのはそういうものです。


(追記)

いま気づいたのですが、
https://github.com/pyenv/pyenv/pull/1397
この pull request がマージ済みのpyenvを使っているなら(homebrewにはもう入っています)、

PYTHON_CONFIGURE_OPTS="--with-tcltk-includes='-I/usr/local/opt/tcl-tk/include' --with-tcltk-libs='-L/usr/local/opt/tcl-tk/lib -ltcl8.6 -ltk8.6'" pyenv install 3.x.x

のようにして、"homebrewで入るTcl/Tk"を使うPythonがビルド可能になっています。

手元で3.7.6をビルドして確認できました。


この件の経緯/議論については
https://teratail.com/questions/207158#reply-307128
https://github.com/pyenv/pyenv/issues/1375#issuecomment-524280004 から下
https://github.com/pyenv/pyenv/pull/1409

あたりも参考にしてください。

投稿2020/01/31 14:39

編集2020/01/31 14:54
quickquip

総合スコア11038

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問