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)
我正在 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)