【问题标题】:PySimpleGUI: Column not covering a portion of the screenPySimpleGUI:列未覆盖屏幕的一部分
【发布时间】:2021-06-25 00:42:43
【问题描述】:

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

【问题讨论】:

    标签: pysimplegui


    【解决方案1】:

    需要为间隙设置两个选项。

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

    更新代码为

    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)
    

    【讨论】:

      【解决方案2】:

      您没有定义窗口的边距,因此它默认为 (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()
      

      【讨论】:

        猜你喜欢
        • 2021-04-25
        • 1970-01-01
        • 1970-01-01
        • 2020-09-09
        • 1970-01-01
        • 2021-04-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多