0

I have made an calculator in python using tkinter but:

Title bar of my Calculator

Title bar of Windows calculator

I want to make it look like the Windows one

D_00
  • 1,440
  • 2
  • 13
  • 32
AS....
  • 11
  • 3
  • 1
    Check [this](https://stackoverflow.com/questions/23836000/can-i-change-the-title-bar-in-tkinter) It has answers here. –  May 08 '21 at 04:43

2 Answers2

1

Here is how you can make a custom title bar:

import tkinter as tk

root = tk.Tk()

def move_window(event):
    root.geometry('+{0}+{1}'.format(event.x_root, event.y_root))

root.overrideredirect(True) # turns off title bar, geometry
root.geometry('400x100+200+200') # set new geometry

# make a frame for the title bar
title_bar = tk.Frame(root, bg='blue', relief='raised', bd=2) # enter your colour here

# put a close button on the title bar
close_button = tk.Button(title_bar, text='X', command=root.destroy)

# a canvas for the main area of the window
window = tk.Canvas(root, bg='black')

# pack the widgets
title_bar.pack(expand=1, fill="x")
close_button.pack(side="right")
window.pack(expand=1, fill="both")

# bind title bar motion to the move window function
title_bar.bind('<B1-Motion>', move_window)

root.mainloop()
ani
  • 303
  • 3
  • 15
0

You can change the DWMWAttritbute for that window using ctypes. (Caption_Color in this case)

Here is an example:

import tkinter
from ctypes import windll, byref, sizeof, c_int

root = tkinter.Tk()
root.title("Tkinter Window")
root.configure(bg="#292929")

root.update()

HWND = windll.user32.GetParent(root.winfo_id())

# This attribute is for windows 11
DWMWA_CAPTION_COLOR = 35

COLOR_1 = 0x00292929 # color should be in hex order: 0x00bbggrr

windll.dwmapi.DwmSetWindowAttribute(HWND, DWMWA_CAPTION_COLOR, byref(c_int(COLOR_1)), sizeof(c_int))

root.mainloop()

enter image description here

This is tested on windows 11 only!

Akascape
  • 219
  • 2
  • 11