كيف يمكنني تغيير تسمية الرأس الأزرق لـ ttk.LabelFrame إلى اللون الأسود في python's tkinter 8.5

StackOverflow https://stackoverflow.com//questions/25002373

  •  20-12-2019
  •  | 
  •  

سؤال

أنا أستخدم tkinter 8.5 وpython 3.3 على جهاز يعمل بنظام Windows 7.

يعرض الكود أدناه رأس Labelframe بلون الخط الأزرق.

from tkinter import *
from tkinter import ttk

root = Tk()

lf = ttk.LabelFrame(root, text="Why is this blue?")
lf.pack()

label = ttk.Label(lf, text="label")
label.pack()

لقد حاولت إصلاح هذه المشكلة عن طريق إضافة ttk.Style()، ولكنني حصلت على عرض غير متوقع:

from tkinter import *
from tkinter import ttk

root = Tk()

s = ttk.Style()
s.configure('TLabelframe.Label', font='arial 14 bold')

lf = ttk.LabelFrame(root, text="Now it's black, but w/ a bizarre display"
                    " and no etched frame.", style='TLabelframe.Label')
lf.pack()

label = ttk.Label(lf, text="label")
label.pack()

هل هناك طريقة لجعل رأس ttk.LabelFrame يظهر باللون الأسود بدون آثار جانبية غريبة؟

هل كانت مفيدة؟

المحلول

يبدو أن Windows افتراضي رؤوس ttk.labelframe إلى هذا اللون الأزرق.لست متأكدا لماذا.

Mac و Linux الافتراضي إلى الأسود، في حين أن Windows افتراضيا إلى اللون الأزرق.

لقد وجدت حلا عن طريق إنشاء TTK.Label ويمر حجة ttk.labelframe's الوسيطة thablewidget.قد يكون هذا أكثر من الحل البديل، رغم ذلك.في أي حال، يعرض التعليمات البرمجية أدناه نص الرأس باللون الأسود على جهاز Windows 7 الخاص بي.

giveacodicetagpre.

نصائح أخرى

يمكن أيضًا تغيير هذا باستخدام خاصية المقدمة tk.LabelFrame(window, foreground='red')

تحتاج فقط إلى إزالة style='TLabelframe.Label' من ttk.LabelFrame خيارات.

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

s = ttk.Style()
s.configure('TLabelframe.Label', font='arial 14 bold')

lf = ttk.LabelFrame(root, text="Now it's black, but w/ a bizarre display"
                    " and no etched frame.")
lf.pack()

label = ttk.Label(lf, text="label")
label.pack()
root.mainloop()

أنا أستخدم Python 3.7.3 وtkinter 8.6.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top