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

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

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

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

Q&A

1回答

2329閲覧

tkinterの改行を文字列に含めたい

yayaya22

総合スコア51

Python

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

0グッド

0クリップ

投稿2022/01/24 15:06

tkinterでtextboxに文字を入力し、実行すると
改行がエンターと認識され、改行を実行するアプリだとメッセージが分かれてしまいます。

改行を認識してくれるようにはできませんでしょうか。

python

1def button_click(): 2 3 result =msg.get( "1.0", "end -1c") 4 print(f'{line}\n{result} \n{line}') 5 6msg = tkinter.Text() 7# msg.grid(row=2, column=1, padx=10,) 8 9msg.place(x = 10, 10 y = 60, 11 width=200, 12 height=120, 13) 14

あいうえお
かきくけこ

と入力する(お/nか に改行が入っています)と、メッセージがエンターを受付してしまい、途切れます。

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

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

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

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

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

shiracamus

2022/01/24 16:30 編集

回答欄に移動しました。
guest

回答1

0

私が書いたサンプルコードではresult文字列に改行文字が含まれていました。
改行を削除したいのであれば result = result.replace('\n', '') とすればできます。
改行がエンターと認識されるアプリがどんなコードかわからないのですが、サンプルコードを提示できませんか?

Textで入力したReturnキーを他のウィジェットで処理させたくないようですので、msgを作成したあと、以下の処理を入れてみてはいかがでしょうか?
return 'break' することで、他のウィジェットにReturnキーが伝播しなくなります。

python

1def msg_return(event): 2 msg.insert(tkinter.INSERT, '\n') 3 return 'break' 4 5msg.bind("<Return>", msg_return)

投稿2022/01/24 16:29

編集2022/01/25 01:17
shiracamus

総合スコア5406

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

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

yayaya22

2022/01/24 23:06

回答ありがとうございます。私の質問が悪かったです。 改行はメッセージ内に保持したいです。 アプリはツイッターやインスタグラムになります。チャットメッセージだと、エンターと認識されてしまうようです。アプリ内のメッセージBOXでは「Alt+enter」で改行が可能なのですが、tkinterのtextBOXはAtt+EnterもEnterと認識されます。
shiracamus

2022/01/25 01:19 編集

メモ帳などに複数行書いてコピー&ペーストでtkinterに入力した場合はお望みの動作になりますか?
shiracamus

2022/01/25 00:50

プログラムのどこかに `.bind('<Return>', 関数名)` という定義はありますか?
shiracamus

2022/01/25 01:19 編集

(コメントが重複したため削除)
shiracamus

2022/01/25 01:18 編集

回答内容を変更しました。
yayaya22

2022/01/25 14:42

ありがとうございました。 試させていただきましたが、Enterが適用されてしまうようです。 こちらのコードを見て、自分でも理解して組み込みさせていただきたく思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問