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

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

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

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

6348閲覧

【python】スクロールバーが自動で下がってほしい。

hachimitu

総合スコア36

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/07/07 06:49

#実現したいこと
テキストボックス内に作成したスクロールバーを文字が更新されるごとに下に下がってほしい。

#現状
現在、下記仕様のアプリケーションを作成していますが、4がどうしてもできていません。
1入力用のテキストボックスにキーボード入力する
2出力ボタンを押す
3入力用のテキストボックス内の値が出力結果のテキストボックスに表示される
4出力結果のテキストボックスは値が表示されるごとに↓にスクロールされる

<参考画像>
イメージ説明

<ソース>

python

1import tkinter as tk 2 3class Application(tk.Frame): 4 def __init__(self,master = None): 5 super().__init__(master) 6 #window初期化 7 master.title("テキストボックス内容の取得") 8 master.geometry("350x150") 9 self.pack() 10 11 #部品配置 12 self.create_widgets() 13 #部品配置関数 14 def create_widgets(self): 15 #キーボード入力する部品作成 16 self.lb = tk.Label(self) 17 self.lb["text"] = "入力" 18 self.lb.pack(side = "top") 19 self.en= tk.Entry(self) 20 self.en.pack() 21 self.en.focus_set() 22 23 #出力ボタン部品作成 24 self.bt = tk.Button(self) 25 self.bt["text"] = "出力ボタン" 26 self.bt["command"] = self.print_txtval 27 self.bt.pack() 28 29 #出力結果表示部品作成 30 self.lb2 = tk.Label(self) 31 self.lb2["text"] = "出力結果" 32 self.lb2.pack() 33 self.fr = tk.Frame() 34 self.fr.pack() 35 self.sc = tk.Scrollbar(self.fr) 36 self.sc.pack(side = tk.RIGHT, fill = "y") 37 self.tx = tk.Text(self.fr, width = 20, height = 5) 38 self.tx.pack() 39 self.tx["yscrollcommand"] = self.sc.set 40 self.sc["command"] = self.tx.yview 41 42 #出力結果ボタンがおされると出力結果エリアに入力された値を表示 43 def print_txtval(self): 44 val_en = self.en.get() 45 self.tx.insert(tk.END, val_en) 46 self.tx.insert(tk.END,'\n') 47 48root = tk.Tk() 49app = Application(root) 50app.mainloop() 51

#質問
4を実現できるような関数はありますでしょうか。もしくはヒントとなるようなアイデアがあればご教示してくださると幸いです。
お手数をおかけしますが宜しくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

self.tx.insert(tk.END,'\n')の後にself.tx.see("end")を追加してください。
参考:autoscroll of text and scrollbar in python text box

投稿2019/07/07 08:51

can110

総合スコア38233

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

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

hachimitu

2019/07/07 13:22

できました!ありがとうございます。 tx.seeで表示場所を指定できるんですね。助かりました。 海外の方も同じ質問してたのですね、今度不明点あったらそっちのほうも探してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問