🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

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

Q&A

解決済

1回答

3471閲覧

python tkinter 画面が小さくなる

MATLIB

総合スコア27

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

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

0グッド

0クリップ

投稿2020/12/07 14:31

pycharmを使用してpythonのtkinterで画面を作成しております。
下記のファイルをデバックして、参照画面の参照ボタンを押下すると、
グラフが表示されるのですが、表示された瞬間に参照画面と画面のコントロールが
少し小さくなります。

mainloop()中にplt.show()することによってこの現象が起きていると思うのですが、
対処方法が分かりません。
pycharmの仕様の可能もあるかもしれませんが、、、

どなたか知っている方がいればご教授ください。

import tkinter from tkinter import font import tkinter as tk from test2 import sansho_click1 class sansho(tkinter.Frame): def __init__(self, master=None,**kwargs): super().__init__(master) self.pack() self.master.geometry("300x300") self.master.title("参照") self.create_widgets(**kwargs) def btn_click2(self): sansho_click1() def create_widgets(self, **kwargs): # ボタン作成 font2 = font.Font(self.master, size=20) btn_start = tkinter.Button(self.master,text='参照',font=font2,bg="#faefe6",height=8, width=20, command=self.btn_click2) # ボタン設定(text=ボタンに表示するテキスト) btn_start.place(x=30, y=50) # ボタンを配置する位置の設定 def main(): root = tk.Tk() app = sansho(master=root) app.mainloop() if __name__ == "__main__": main()
# -*- coding: utf-8 -*- """ 動画参照 """ import cv2 import os import csv import numpy as np from matplotlib import pyplot as plt from FindNormal import find_normal import time def sansho_click1(): plt.show()

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

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

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

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

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

guest

回答1

0

ベストアンサー

コントロールが小さくなる現象は確認してませんが、
※ このコードは、pyplot のバックエンドの環境により挙動が変わります。

mainloop()中にplt.show()することによってこの現象が起きていると思うのですが、

mainloop 中に、イベントループを止めるような操作 plt.show()
は行ってはいけません。

pyplot のバックエンドが tkinter の場合は、
mainloop() の代わりに plt.show() を使うことも出来ますが、
イベントループが競合するため、両方を同時には使えません。

tkinter と matplotlib を一緒に使う場合は、
FigureCanvasTkAgg クラスを使い tkinter のウィジェット内に
埋め込むような使い方をします。

投稿2020/12/07 16:12

編集2020/12/07 16:25
teamikl

総合スコア8738

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

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

MATLIB

2020/12/08 00:15

FigureCanvasTkAggクラスで使用すると、plt.showで使用できるグラフの拡大縮小機能とかはあきらめた方がいいでしょうか。
teamikl

2020/12/08 05:34

ツールバーは別部品 NavigationToolbar2TkAgg として提供されてます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問