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

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

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

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

Python

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

Q&A

解決済

1回答

776閲覧

テキストボックス内でカーソルの形を変化させたい

yamatan

総合スコア8

Tkinter

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

Python

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

0グッド

0クリップ

投稿2021/09/10 11:59

実現したいこと

テキストボックス内でのカーソルの形を変化させたいです。

問題

ScrolledText()でテキストボックスに文字を表示させ、テキストボックス内にカーソルを持ってきたときに、カーソルは矢印から「I」のような形になります。このときカーソルの形は「I」から変更できなくなるようで、ScrolledText.configure(cursor='star')などと設定しても反映されません。

以下に、実際に実行したプログラムを載せます。プログラムを実行すると、Labelウィジェット内でクリックすると、ボタンが押されている間はカーソルはarrowからstarになり、ボタンが離されるとstarからarrowに戻ります。同じことをテキストボックス内でもやりたいのですが、テキストボックス内でのカーソルは「I」で固定され、starに変化しません。テキストボックス内でもクリックイベントは働いているよですが、カーソルの形だけが反映されません。

実行したプログラム

Python

1from tkinter import * 2from tkinter import scrolledtext 3 4def pressButton(event): 5 root.configure(cursor='star') 6 7def releaseButton(event): 8 root.configure(cursor='arrow') 9 10# main window 11root = Tk() 12root.title("Tk window") 13root.geometry('300x300') 14root.bind('<ButtonPress-1>', pressButton) 15root.bind('<ButtonRelease>', releaseButton) 16 17# Frame in root 18frame = Frame(root, bd=4, relief=GROOVE, bg='green') 19frame.pack(side=TOP, expand=True, fill=X) 20 21# label in frame 22label = Label(frame, text='label') 23label.pack(side=TOP, expand=True, fill=X) 24 25# scrolled textbox in frame 26line = 'moji-----'*100 27scroll_tbx = scrolledtext.ScrolledText(frame) 28scroll_tbx.pack(side=TOP, expand=True, fill=BOTH) 29scroll_tbx.configure(state='normal') 30scroll_tbx.delete('1.0', 'end') 31scroll_tbx.insert('1.0', line) 32scroll_tbx.configure(state='disable') 33 34root.mainloop() 35

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

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

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

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

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

guest

回答1

0

ベストアンサー

rootではなく、scroll_tbxに対してconfigureメソッドを使ってください。

投稿2021/09/10 12:53

Daregada

総合スコア11990

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問