Я разрабатываю приложение с использованием Python3 и tkinter 8.6. Частью является довольно сложный диалог, который использует темный фон. Прилагаемый код использует только несколько виджетов, чтобы показать область, которую я не могу заставить работать. Среди прочего, мой диалог делает очевидным (выделенным цветом фона, просто вкладкой) виджет, который имеет фокус клавиатуры. Я пробовал каждую возможную строку поиска, которую мог найти для решения, но безрезультатно. Оказывается, «insertwidth»: «4» работает. Я хочу изменить цвет курсора точки вставки виджета ttkEntry. Ни один из предложенных ответов, которые я нашел, не является решением. Заранее спасибо.
#!/usr/bin/env python3
import tkinter as tk
import tkinter.ttk as ttk # ttk widgets use styles
import tkinter.font as tkfont
def app_exit():
root.destroy()
root = tk.Tk()
root.geometry('400x50+400+100')
bg = '#2C2B3B' # dark blue
hlbg = '#3F3D5C' # dark blue a shade lighter
fg = 'white'
ebg = 'pink' # Entry inserts
root.configure(background=bg) # fills in around labels and entries
font14 = tkfont.Font(size=14)
font10 = tkfont.Font(size=10)
root.option_add('*TEntry*Font', font14)
ttstyle = ttk.Style()
ttstyle.theme_use('default')
ttstyle.theme_settings('default', {
'.': { # this sets the general defaults for everybody
'configure': {'font': font14, 'background': bg, 'foreground': fg}},
'TButton': {
'map': {'background': [('active', hlbg), ('focus', hlbg), ('!disabled', bg)]}},
'TEntry': { # 'insertforeground' and 'insertforeground' does not seem to do anything
'configure': {'insertwidth': '4', 'insertforeground': ebg, 'insertforeground': ebg},
'map': {'fieldbackground': [('active', hlbg), ('focus', hlbg), ('!disabled', bg)],
'foreground': [('!disabled', fg)]}},
'TLabel': {
'configure': {'font': font10}}})
lbl1 = ttk.Label(root, text='Hello ')
tbx = ttk.Entry(root)
btnOK = ttk.Button(root, text='Exit', command=app_exit)
lbl1.grid(row=0, column=0, sticky='w')
tbx.grid(row=0, column=1, sticky='ew')
btnOK.grid(row=0, column=2, sticky='e')
tbx.insert(0,'AbCdEf')
tbx.focus()
root.mainloop()
tbx = ttk.Entry(root,insertbackground='red')
- person Cool Cloud   schedule 11.08.2020tk.Entry()
вместоttk.Entry(...)
- person Cool Cloud   schedule 11.08.2020