【问题标题】:PySimpleGUI: index of column/framesPySimpleGUI:列/帧的索引
【发布时间】:2021-09-08 19:45:05
【问题描述】:

我在 PySimpleGUI 中创建了一个 gui 并创建了 3 个列,但是当我尝试添加第四个列时,它会进入另一列并执行 This。我希望我存储按钮的列保持在他的位置。这里也是代码。是否可以更改索引?这里还有一张图片让你看看工作应该如何be 唯一的区别是我想添加 colc(列的名称)以留在白色部分。

# Import delle liberie
from config import *
import tkinter as tk
import PySimpleGUI as sg
import datetime
font = ("Times New Roman", 11)
#import di tkinter per 
x = tk.Tk()
x.withdraw()
now = datetime.datetime.now()
time=now.strftime("%Y-%m-%d %H:%M:%S")
width = x.winfo_screenwidth()
height = x.winfo_screenheight()
size = (140, height)
size1 = (width, 100)

colc= [
    [sg.Text("testo"), sg.Input()],
    [sg.Text("testo"), sg.Input()],
    [sg.Text("testo"), sg.Input()],
    [sg.Text("testo"), sg.Input()],
    [sg.Text("testo"), sg.Input()]
]

inputbottom = [
   [sg.Text("Input →", background_color="blue"), sg.Input(size=(209, 50))],
   
    
    ]

logo = [
        
        [sg.Image(filename ='img/logo.png', background_color="blue")],
              
        
    ]

col1 = [ 
           
           [sg.Text(time, justification="c", background_color="blue", key='-TEXT-')],
           [sg.Button("Avvia Standard", size=(14, 6), button_color=('gray'),)],
           [sg.Button("Avvia Multipla", size=(14, 6), button_color=('gray'))],
           [sg.Button("Concludi Singola", size=(14, 6), button_color=('gray'))],
           [sg.Button("Concludi tutto", size=(14, 6), button_color=('gray'))],
           [sg.Button("Mostra Attive", size=(14, 6), button_color=('gray'))],
           [sg.Button("Login", size=(14, 6), button_color=('gray'),)],
           [sg.Button("Logout", size=(14, 6), button_color=('gray'))]
           ]

frametop = [[sg.Column(logo, background_color='Blue')]]
buttons =  [[sg.Column(col1,background_color='Blue')]]



layout = [
        
        [sg.Column(frametop, size=size1, background_color='Blue', justification="top", pad=(0, 0))],
        [sg.Column(colc, pad=(0,0))],
        [sg.Column(buttons, size=(140, 845), background_color='Blue', justification="right", pad=(0, 0))],
        [sg.Column(inputbottom, justification="top", background_color="Blue", size=(width, 400), pad=(0,0))],
        
        
          ] 

window = sg.Window('CMF-GESTIONALE',layout,resizable=True, finalize=True,size=(width, height),icon='img/Icona.ico',background_color='white', font=font,margins=(0,0)).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()

【问题讨论】:

  • 这取决于您如何将 GUI 拆分为水平块和垂直块的组合。将选项 , justification="right" 添加到 [sg.Column(colc, pad=(0,0))], 以将 colc 向右移动。您可以为col1colc 设置另一个以对齐两种布局。
  • 我在底部做了一个竖条,一个横条,另一个竖条。有没有办法在中间添加第四个而不给我那个空白?
  • @JasonYang 它也不起作用。我试图在网上搜索,但我找不到任何东西

标签: pysimplegui


【解决方案1】:

如果需要左右列布局,这里是示例代码

import PySimpleGUI as sg

sg.theme("DarkBlue3")
sg.set_options(font=("Courier New", 16))

left = [[sg.Text("testo"), sg.Input()] for i in range(5)]
right = [[sg.Button(f"Button {i}")] for i in range(10)]
layout = [
    [sg.Text("Top Line")],
    [sg.Column(left, vertical_alignment='top'), sg.Column(right, vertical_alignment='top')],
    [sg.Text("Bottom Line")],
]
window = sg.Window('Title', layout, finalize=True)

while True:

    event, values = window.read()
    if event == sg.WINDOW_CLOSED:
        break
    print(event, values)

window.close()

【讨论】:

    猜你喜欢
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    • 2021-04-24
    • 2022-12-17
    • 1970-01-01
    • 2022-08-11
    • 1970-01-01
    相关资源
    最近更新 更多