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

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

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

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

Tkinter

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

Q&A

解決済

3回答

1088閲覧

python tkinterのenterが可変にならない…

cadce31415

総合スコア14

Python 3.x

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

Tkinter

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

0グッド

0クリップ

投稿2022/01/27 04:14

編集2022/01/27 04:15

概要(自分の状況などwww)

これからwindows のローカルアプリを仕事の便利ツールで作ろうと思っております。
(メンテナンスも考慮し、会社からはpythonを指定…)
プログラム経験は多少あるのですが初めてのpythonで初心者です。

困っている事

tkinterを使って、Enter(テキストボックス)の長さを変更したい。
設定しているつもりが変わらない。

ソースコード

python

1import tkinter as tk 2from tkinter import EW, ttk 3 4#GUIクラス 5class Application(tk.Frame): 6 def __init__(self,master): 7 super().__init__(master) 8 #winの設定 9 self.master.geometry("600x300") 10 self.master.title("tkinter") 11 12 #self.gridの後に書いたり位置を変えたりindexを変えても変化なし… 13 self.master.columnconfigure(0,weight=1) 14 self.master.columnconfigure(1,weight=1) 15 16 17 # ウィジェット作成 18 self.create_widgets() 19 20 def create_widgets(self): 21 #グリッド 22 self.grid(column=0, row=0,sticky=tk.NSEW, padx=10, pady=10) 23 24 ######JSONファイルパス###### 25 #ラベル 26 self.json_filepath_label = ttk.Label(self, text="ファイル指定") 27 self.json_filepath_label.grid(column=0, row=1, pady=10)#位置設定 28 29 #jsonファイルパス(テキストボックス) 30 self.json_filepath_box = ttk.Entry(self) 31 self.json_filepath_box.insert(tk.END,"C:\hogehoge\hogehoge") 32 #ここでEWは入れているが反映されない。 33 self.json_filepath_box.grid(column=1, row=1,sticky=tk.EW, padx=5,pady=10)#位置設定 34 #参照ボタン 35 self.json_filepath_button = ttk.Button(self,text="参照") 36 self.json_filepath_button.grid(column=2,row=1, padx=5,pady=10)#位置設定 37 ############################### 38 39#mainからスタート 40def main(): 41 root = tk.Tk() 42 app = Application(master=root)#TKを継承 43 app.mainloop()#実行 44 45if __name__ == "__main__": 46 main()

出力結果

イメージ説明

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

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

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

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

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

guest

回答3

0

自己解決

python

1import tkinter as tk 2from tkinter import EW, ttk 3 4#GUIクラス 5class Application(tk.Frame): 6 def __init__(self,master): 7 super().__init__(master) 8 #winの設定 9 self.master.geometry("600x300") 10 self.master.title("tkinter") 11 12 #self.gridの後に書いたり位置を変えたりindexを変えても変化なし… 13 self.master.columnconfigure(0,weight=1) 14 self.master.rowconfigure(0,weight=1) 15 self.columnconfigure(1,weight=1) 16 17 # ウィジェット作成 18 self.create_widgets() 19 20 def create_widgets(self): 21 #グリッド 22 self.grid(column=0, row=0,sticky=tk.NSEW, padx=10, pady=10) 23 24 ######JSONファイルパス###### 25 #ラベル 26 self.json_filepath_label = ttk.Label(self, text="ファイル指定") 27 self.json_filepath_label.grid(column=0, row=1, pady=10)#位置設定 28 29 #jsonファイルパス(テキストボックス) 30 self.json_filepath_box = ttk.Entry(self) 31 self.json_filepath_box.insert(tk.END,"C:\hogehoge\hogehoge") 32 #ここでEWは入れているが反映されない。 33 self.json_filepath_box.grid(column=1, row=1,sticky=tk.EW, padx=5,pady=10)#位置設定 34 #参照ボタン 35 self.json_filepath_button = ttk.Button(self,text="参照") 36 self.json_filepath_button.grid(column=2,row=1, padx=5,pady=10)#位置設定 37 ############################### 38 39#mainからスタート 40def main(): 41 root = tk.Tk() 42 app = Application(master=root)#TKを継承 43 app.mainloop()#実行 44 45if __name__ == "__main__": 46 main()

↓下記ソース
self.master.columnconfigure(0,weight=1)
self.master.rowconfigure(0,weight=1)
self.columnconfigure(1,weight=1)

self(=Frame)の.columnconfigure(1,weight=1)が必要なことが分かりました。
こちら解決できました!

投稿2022/01/27 07:39

cadce31415

総合スコア14

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

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

0

こちらも初心者なんで至らないところはあるだろうけど、こんな感じでどうだろう?

python

1import tkinter as tk 2 3def Mojisu(): 4 entry.configure(width=len(entry.get())+5) 5 root.after(100, Mojisu) 6 7root=tk.Tk() 8root.title("test") 9root.geometry("150x100") 10 11label=tk.Label(text="ファイル指定") 12label.grid(row=0,column=0) 13 14entry=tk.Entry(width=5) 15entry.grid(row=0,column=1) 16 17root.after(100,Mojisu) 18 19root.mainloop()

あとこんなのもあったけどこっちはよくわからなかった。
https://daeudaeu.com/tkinter-validation/

投稿2022/01/27 06:58

Poohtaro

総合スコア8

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

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

cadce31415

2022/01/27 07:12

確認したのですが、想像している動きになっていなく…ちと内容が違うような気がします… もう一つの参考サイトはvaldationチェックなのでもっと違う内容です…
guest

0

投稿2022/01/27 04:21

ppaul

総合スコア24666

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

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

cadce31415

2022/01/27 04:36

言葉足らずですみません。 フォームの長さに合わせてEnterコントロールだけ伸ばしたいんです。 このサイトも見たことがあるんですが今回の要望にそぐわずでして…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問