PySimpleGUI:列未覆盖屏幕的一部分

PySimpleGUI: Column not covering a portion of the screen

我正在 PySimpleGUI 中制作一个简单的 GUI。我创建了一个用于存储按钮的列,但它没有覆盖所有屏幕(右侧有一条白线)。 有谁能够帮我? 如果这是 gui 和代码的图像。 Click to go to the image

from config import *
import tkinter as tk
import PySimpleGUI as sg
font = ("Times New Roman, 11")
x = tk.Tk()
x.withdraw()

width = x.winfo_screenwidth()
height = x.winfo_screenheight()
layout_destra = [ #[sg.Image("Logo.png")],
           [sg.Button("Avvia Standard", size=(15, 7), button_color=('gray'))],
           [sg.Button("Avvia Multipla", size=(15, 7), button_color=('gray'))],
           [sg.Button("Concludi Singola", size=(15, 7), button_color=('gray'))],
           [sg.Button("Concludi tutto", size=(15, 7), button_color=('gray'))],
           [sg.Button("Mostra Attive", size=(15, 7), button_color=('gray'))],
           [sg.Button("Login", size=(15, 7), button_color=('gray'),)],
           [sg.Button("Logout", size=(15, 7), button_color=('gray'))],
           ]




layout_bottoni = [[sg.Column(layout_destra,justification="right", background_color="blue", size=(140,height))]]

window = sg.Window('CMF-GESTIONALE',layout_bottoni,resizable=True, finalize=True,size=(width, height),icon='Icona.ico',background_color='white').Finalize()
window.Maximize()

# Eventi Bottoni
while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED or event == 'Logout':
        break
    if event == 'Avvia Standard':
        print("-")
    if event == 'Avvia Multipla':
        print("-")
    if event == 'Concludi Singola':
        print("-")
    if event == 'Concludi tutto':
        print("-")
    if event == 'Mostra Attive':
        print("-")
    if event == 'Login':
        print("-")
    
   
window.close()

您没有定义 Window 的边距,因此它默认为 (None, None),在这种情况下,PySimpleGUI 使用 DEFAULT_MARGINS是 (10, 5).

...
...
DEFAULT_MARGINS = (10, 5)  # Margins for each LEFT/RIGHT margin is first term
...
...

class Window:
    ...
    ...
    def __init__(self, title, layout=None, default_element_size=DEFAULT_ELEMENT_SIZE,
                 default_button_element_size=(None, None),
                 auto_size_text=None, auto_size_buttons=None, location=(None, None), size=(None, None),
                 element_padding=None, margins=(None, None), button_color=None, font=None,
                 progress_bar_color=(None, None), background_color=None, border_depth=None, auto_close=False,
                 auto_close_duration=DEFAULT_AUTOCLOSE_TIME, icon=None, force_toplevel=False,
                 alpha_channel=1, return_keyboard_events=False, use_default_focus=True, text_justification=None,
                 no_titlebar=False, grab_anywhere=False, keep_on_top=False, resizable=False, disable_close=False,
                 disable_minimize=False, right_click_menu=None, transparent_color=None, debugger_enabled=True,
                 right_click_menu_background_color=None, right_click_menu_text_color=None, right_click_menu_disabled_text_color=None, right_click_menu_selected_colors=(None, None),
                 right_click_menu_font=None, right_click_menu_tearoff=False,
                 finalize=False, element_justification='left', ttk_theme=None, use_ttk_buttons=None, modal=False, enable_close_attempted_event=False,
                 titlebar_background_color=None, titlebar_text_color=None, titlebar_font=None, titlebar_icon=None,
                 use_custom_titlebar=None, metadata=None):
    ...
    ...
    self.Margins = margins if margins != (None, None) else DEFAULT_MARGINS
window = sg.Window('CMF-GESTIONALE',layout_bottoni,resizable=True, finalize=True,size=(width, height),icon='Icona.ico',background_color='white', margin=(0, 0)).Finalize()

差距需要设置两个选项。

  • sg.Column 中的选项 pad=(0, 0) 用于放置元素周围的填充量。
  • sg.Window 中的选项 margins=(0, 0) 用于在 window 的边框内留下的像素数量

更新代码为

layout_bottoni = [[sg.Column(layout_destra, justification="right",
    background_color="blue", size=(140, height), pad=(0, 0))]]

window = sg.Window('CMF-GESTIONALE', layout_bottoni, resizable=True,
    size=(width, height), margins=(0, 0), icon='Icona.ico',
    background_color='green', finalize=True)