📜  如何在 Tkinter 中更改光标的颜色和符号?

📅  最后修改于: 2022-05-13 01:55:36.814000             🧑  作者: Mango

如何在 Tkinter 中更改光标的颜色和符号?

Tkinter是Python的标准 GUI 库。它为 GUI 开发提供了各种小部件。我们可以根据选择为小部件提供背景颜色。但是,有时背景颜色会影响鼠标指针的可见性。在这种情况下,更改光标颜色可以区分鼠标指针。通过使用光标类型指定颜色,可以更改光标的颜色。这些值可以在创建小部件时在光标属性中指定,也可以使用该小部件的config()方法指定。如果未为小部件定义,则光标类型和光标颜色从父窗口继承。可以使用标准名称或十六进制 RGB 值指定光标颜色。例如, cursor=”plus red”cursor=”plus #FF0000″ ,将提供红色的加号光标图标。

对于某些光标,可以提供 2 种颜色,填充颜色和边框颜色。例如, cursor=”dot red blue” ,将提供一个带有蓝色边框的红色点光标图标。

脚步:

  • 创建一个 Tkinter 窗口
  • 使用光标参数指定窗口的光标图标和颜色
  • 在创建其他小部件或使用该小部件的配置方法时,为其他小部件指定光标图标和颜色。

以下程序演示了光标颜色的变化以及顶级窗口和其他小部件的光标变化。

Python3
# Import library
import tkinter as tk
  
# Create Tkinter window
frame = tk.Tk()
frame.title('GFG Cursors')
frame.geometry('200x200')
  
# Specify dot cursor with blue color for frame
frame.config(cursor="dot blue")
  
# Specify various cursor icons with colors
# for label and buttons
tk.Label(frame, text="Text cursor",
         cursor="xterm #0000FF").pack()
  
tk.Button(frame, text="Circle cursor",
          cursor="circle #FF00FF").pack()
  
tk.Button(frame, text="Plus cursor",
          cursor="plus red").pack()
  
# Specify cursor icon and color using
# config() method
a = tk.Button(frame, text='Exit')
a.config(cursor="dot green red")
a.pack()
  
frame.mainloop()


Python3
# Import library
import tkinter as tk
  
# Create top level window
frame = tk.Tk()
frame.title("Text Cursor")
frame.geometry('200x200')
  
# Create Text widget with "red" text cursor
inputtxt = tk.Text(frame, height=5, width=20, 
                   insertbackground="red")
inputtxt.place(x=20, y=20)
  
frame.mainloop()


输出:

注意:Windows 不支持在 Tkinter 中更改光标颜色。可用游标列表可以参考这里。

我们可以使用文本小部件的 insertbackground 参数更改文本光标颜色。以下程序演示了文本光标颜色的变化。

蟒蛇3

# Import library
import tkinter as tk
  
# Create top level window
frame = tk.Tk()
frame.title("Text Cursor")
frame.geometry('200x200')
  
# Create Text widget with "red" text cursor
inputtxt = tk.Text(frame, height=5, width=20, 
                   insertbackground="red")
inputtxt.place(x=20, y=20)
  
frame.mainloop()

输出: