Try option image_filename or image_data of sg.Button, and set correct button color from theme setting, also set border width to 0.

Here's example how it work, remember to use your image file in following code.

import PySimpleGUI as sg

font = ('Helvetica', 12, 'bold italic')
sg.theme('Dark')
sg.set_options(font=font)
colors = (sg.theme_background_color(), sg.theme_background_color())

layout = [
    [sg.Button('Blue\nCircle', button_color=colors, image_filename='d:/circle_blue.png', border_width=0)]
]
window = sg.Window('Image Button', layout, finalize=True)

while True:
    event, values = window.read()
    if event == sg.WINDOW_CLOSED:
        break
window.close()

Answer from Jason Yang on Stack Overflow
🌐
PySimpleGUI
docs.pysimplegui.com › en › latest › documentation › module › elements › button
Button - PySimpleGUI Documentation
Chooser buttons were an early design construct of PySimpleGUI that has been slowly been migrated away from. The design direction for PySimpleGUI has been to move away from Chooser buttons and instead users add plain buttons to their layout and then call a popup function to show the system dialog.
🌐
ProgramCreek
programcreek.com › python › example › 116002 › PySimpleGUI.Button
Python Examples of PySimpleGUI.Button
def create_settings_window(settings): sg.theme(settings['theme']) def TextLabel(text): return sg.Text(text+':', justification='r', size=(15,1)) layout = [ [sg.Text('Settings', font='Any 15')], [TextLabel('Max Users'), sg.Input(key='-MAX USERS-')], [TextLabel('User Folder'),sg.Input(key='-USER FOLDER-'), sg.FolderBrowse(target='-USER FOLDER-')], [TextLabel('Zipcode'),sg.Input(key='-ZIPCODE-')], [TextLabel('Theme'),sg.Combo(sg.theme_list(), size=(20, 20), key='-THEME-')], [sg.Button('Save'), sg.Button('Exit')] ] window = sg.Window('Settings', layout, keep_on_top=True, finalize=True) for key in SETTINGS_KEYS_TO_ELEMENT_KEYS: # update window with the values read from settings file try: window[SETTINGS_KEYS_TO_ELEMENT_KEYS[key]].update(value=settings[key]) except Exception as e: print(f'Problem updating PySimpleGUI window from settings.
Discussions

[ Help Wanted ] Nice looking button graphics wanted....
Type of Issues (Enhancement, Error, Bug, Question) Enhancement PySimpleGUI Port and Version Ports = tkinter, Qt, WxPython (likely not going to be on the Web port initially) Description of Request Flat and Gradient Buttons I've been speak... More on github.com
🌐 github.com
42
September 25, 2020
python - Create Custom Buttons in PySimpleGui - Stack Overflow
I'm making a GUI with PySimpleGui and I want one of my buttons to be a circle and one to be bigger. Is there a way to do this? If so, how? I'm using the TKinter port. More on stackoverflow.com
🌐 stackoverflow.com
December 19, 2021
python - Using PySimpleGui, how to get buttons to work? - Stack Overflow
Trying out PySimpleGui for the first time, wanting to create an exec program that allows the user to either move or copy directories/files to the destination of their choice, but dont really unders... More on stackoverflow.com
🌐 stackoverflow.com
python - How do I create a custom button using PySimpleGUI that will allow me to browse for files? - Stack Overflow
I'm currently trying to create a custom button in python using PySimpleGUI that allows me to browse for files. I am able to do this successfully for a button that submits my entries and one that ca... More on stackoverflow.com
🌐 stackoverflow.com
🌐
Reddit
reddit.com › r/learnpython › how can i change the ui style in pysimplegui.
r/learnpython on Reddit: How can I change the UI style in pysimplegui.
November 25, 2020 -

I want to change the button/window style in pysimpleGUI. In their docs, they say

If a system-wide setting is desired, then the default can be set using set_options
This will affect all windows such as popups and the debug window.

The ttk theme choices depend on the platform. Linux has a shorter number of selections than Windows. These are the Windows choices: 'default', 'winnative', 'clam', 'alt', 'classic', 'vista', 'xpnative'

I tried doing

sg.set_options(ttk_theme="clam")

but nothing changes.

How can i make it change the style of the buttons to look more like this photo (or customize it even more) https://preview.redd.it/vhogok31rb161.png?width=164&format=png&auto=webp&s=1498e9af644fdfdf7ef6080f18d45c942b80efaa

🌐
GitHub
github.com › PySimpleGUI › PySimpleGUI › issues › 3412
[ Help Wanted ] Nice looking button graphics wanted.... · Issue #3412 · PySimpleGUI/PySimpleGUI
September 25, 2020 - Type of Issues (Enhancement, Error, Bug, Question) Enhancement PySimpleGUI Port and Version Ports = tkinter, Qt, WxPython (likely not going to be on the Web port initially) Description of Request Flat and Gradient Buttons I've been speak...
Author   PySimpleGUI
🌐
TutorialsPoint
tutorialspoint.com › pysimplegui › pysimplegui_button_element.htm
PySimpleGUI - Button Element
The FileBrowse button opens a file dialog from which a single file can be selected. In the following code, the path string of the selected file is displayed in the target Input bow in the same row. import PySimpleGUI as psg layout = [ [psg.Text('Select a file',font=('Arial Bold', 20), expand_x=True, justification='center')], [psg.Input(enable_events=True, key='-IN-',font=('Arial Bold', 12),expand_x=True), psg.FileBrowse()] ] window = psg.Window('FileChooser Demo', layout, size=(715,100)) while True: event, values = window.read() if event == psg.WIN_CLOSED or event == 'Exit': break window.close()
🌐
HolyPython
holypython.com › home › gui with python: checkboxes and radio buttons (pysimplegui part ii)
GUI with Python: Checkboxes and Radio Buttons (PySimpleGUI Part II) | HolyPython.com
October 1, 2021 - Previously we’ve demonstrated how to create a GUI layout, window, text and buttons with Python in the previous GUI tutorial. (PySimpleGUI Part I). We’ve also seen numerous ways to style them with builtin styles and themes as well as pick colors and adjust sizes for numerous items such as buttons, titles and text.
Find elsewhere
🌐
PySimpleGUI
docs.pysimplegui.com › en › latest › documentation › module › themes
Themes - PySimpleGUI Documentation
For a "slightly less gray", the original PySimpleGUI color scheme of a blue button and everything else gray then you can get that with the theme Default or System Default.
🌐
GitHub
github.com › PySimpleGUI › PySimpleGUI › blob › master › DemoPrograms › Demo_Button_Toggle.py
PySimpleGUI/DemoPrograms/Demo_Button_Toggle.py at master · PySimpleGUI/PySimpleGUI
You may not redistribute, modify or otherwise use PySimpleGUI or its contents except pursuant to the PySimpleGUI License Agreement. ... sg.Button('', image_data=toggle_btn_off, key='-TOGGLE-GRAPHIC-', button_color=(sg.theme_background_color(), sg.theme_background_color()), border_width=0)],
Author   PySimpleGUI
🌐
Mouse Vs Python
blog.pythonlibrary.org › home › pysimplegui - an intro to laying out elements
PySimpleGUI - An Intro to Laying Out Elements - Mouse Vs Python
January 25, 2022 - When you run this code, you will see the buttons aligned horizontally, with one next to the other going from left-to-right. Now you are ready to see how you can rewrite the code to create a vertical layout! To create a vertically oriented layout with PySimpleGUI, you need to make the layout contain a series of nested lists that each contain a one or more Elements in them.
🌐
PySimpleGUI
docs.pysimplegui.com › en › latest › cookbook › original › graphical_buttons
Replacing a Button with a Graphic - PySimpleGUI Documentation
When working with PNG/GIF files as button images the background you choose for the button matters. It should match the background of whatever it is being placed upon. If you are using the standard "themes" interfaces to build your windows, then the color of the background can be found by calling theme_background_color().
🌐
Stack Overflow
stackoverflow.com › questions › 74454414 › how-to-change-text-when-a-button-is-pressed-with-pysimplegui
python - How to change text when a button is pressed with PySimpleGUI - Stack Overflow
Variable buttonX is just a variable and nothing about the GUI, you have to call elemet.update(value=something) where the element can be found by window[element_key]. import PySimpleGUI as sg keys = ['123÷', '456×', '789+', '.0=-'] all_keys = ''.join(keys) sg.theme('DarkGrey13') sg.set_options(font=('Courier New', 16)) layout = [ [sg.Text('Calculator', expand_x=True, justification='center')], [sg.Input(size=5, expand_x=True, key='-INPUT-')]] + [ [sg.Button(key, size=3) for key in row] for row in keys] + [ [sg.Push(), sg.Button('Submit')], ] window = sg.Window('Calculator', layout) while True: event, values = window.read() if event == sg.WINDOW_CLOSED: break elif event in all_keys: problem = values['-INPUT-'] window['-INPUT-'].update(problem + event) window['-INPUT-'].widget.xview_moveto(1) elif event == 'Submit': problem = values['-INPUT-'] print(problem) window.close()
🌐
GitHub
github.com › PySimpleGUI › PySimpleGUI › blob › master › DemoPrograms › Demo_Buttons_Realtime.py
PySimpleGUI/DemoPrograms/Demo_Buttons_Realtime.py at master · PySimpleGUI/PySimpleGUI
April 17, 2022 - [sg.Column([[sg.Quit(button_color=(sg.theme_button_color()[1], sg.theme_button_color()[0]), focus=True)]], justification='r')]]
Author   PySimpleGUI
🌐
PySimpleGUI
docs.pysimplegui.com › en › latest › documentation › module › elements › button_menu
ButtonMenu - PySimpleGUI Documentation
The ButtonMenu element produces a unique kind of effect. It's a button, that when clicked, shows you a menu. It's like clicking one of the top-level menu items on a MenuBar.
🌐
GitHub
github.com › PySimpleGUI › PySimpleGUI › issues › 1959
How to size a button · Issue #1959 · PySimpleGUI/PySimpleGUI
September 11, 2019 - I started by doing pad=(0,0) for all elements in the Information: frame. I got the look I want on the first 3 elements (Account:, Inputbox, User Id:). The remaining elements were not effected by setting the padding to 0. I assume it is because of the size of the buttons at the end of each Inputbox.
Author   cleanman2
🌐
PyPI
pypi.org › project › PySimpleGUI › 2.7.0
PySimpleGUI
JavaScript is disabled in your browser · Please enable JavaScript to proceed · A required part of this site couldn’t load. This may be due to a browser extension, network issues, or browser settings. Please check your connection, disable any ad blockers, or try using a different browser
🌐
TutorialsPoint
tutorialspoint.com › pysimplegui › pysimplegui_events.htm
PySimpleGUI - Events
Add key parameters to Add and Sub buttons in the program. import PySimpleGUI as psg layout = [ [psg.Text('Enter a num: '), psg.Input(key='-FIRST-')], [psg.Text('Enter a num: '), psg.Input(key='-SECOND-')], [psg.Text('Result : '), psg.Text(key='-OUT-')], [psg.Button("Add", key='-ADD-'), psg.Button("Sub", key='- SUB-'), psg.Exit()], ] window = psg.Window('Calculator', layout) while True: event, values = window.read() print(event, values) if event == "-ADD-": result = int(values['-FIRST-']) + int(values['-SECOND-']) if event == "-SUB-": result = int(values['-FIRST-']) - int(values['-SECOND-']) window['-OUT-'].update(result) if event == psg.WIN_CLOSED or event == 'Exit': break window.close()
🌐
PySimpleGUI
docs.pysimplegui.com › en › latest › call_reference › tkinter › elements › pre_defined_buttons
Pre-Defined Buttons - PySimpleGUI Documentation
ColorChooserButton( button_text, target = (555666777, -1), image_filename = None, image_data = None, image_size = (None, None), image_subsample = None, tooltip = None, border_width = None, size = (None, None), s = (None, None), auto_size_button = None, button_color = None, disabled = False, font = None, bind_return_key = False, focus = False, pad = None, p = None, key = None, k = None, default_color = None, visible = True, metadata = None, expand_x = False, expand_y = False )