Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x pysimplegui状态栏行为奇怪_Python 3.x_Pysimplegui - Fatal编程技术网

Python 3.x pysimplegui状态栏行为奇怪

Python 3.x pysimplegui状态栏行为奇怪,python-3.x,pysimplegui,Python 3.x,Pysimplegui,我的问题: 我一直在尝试制作notepad的python克隆,以了解pysimplegui的工作原理。所以我从下面开始,然后修改了一些代码,使其看起来更像记事本。但是当我添加一个状态栏时,我注意到它没有按照我想要的方式运行,而不是在窗口底部的一个小条带,它下面有一个大边框,当我调整窗口大小时,状态栏实际上不会垂直移动 代码和图像: 是gui的代码: #~~~~imports~~~~ import PySimpleGUI as sg import pathlib WIN_W = 90 WI

我的问题

我一直在尝试制作notepad的python克隆,以了解pysimplegui的工作原理。所以我从下面开始,然后修改了一些代码,使其看起来更像记事本。但是当我添加一个状态栏时,我注意到它没有按照我想要的方式运行,而不是在窗口底部的一个小条带,它下面有一个大边框,当我调整窗口大小时,状态栏实际上不会垂直移动

代码和图像

是gui的代码:

#~~~~imports~~~~
import PySimpleGUI as sg
 
import pathlib
 
WIN_W = 90
WIN_H = 25
 
'''
sg.ChangeLookAndFeel('SystemDefault')
'''
#~~~~layout~~~~
#/settings
menu_def = [['File', ['New    Ctrl+N', 'Open...    Ctrl+O', 'Save    Ctrl+S','Save As...', '---', 'Page Setup...', 'Print...    Ctrl+P', '---', 'Exit'  ]],      
                ['Edit', ['Undo    Ctrl+Z', '---', 'cut    Ctrl+X', 'copy    Ctrl+C', 'Paste    Ctrl+V', 'delete    Del', '---', 'find...    Ctrl+F', 'Find Next    F3', 'Replace...    Ctrl+H', 'Go To...    Ctrl+G', '---', 'Select All    Ctrl+A', 'Time/Date    F5'], ],
                ['format', ['Word Wrap', 'font...'], ],
                ['view', ['Status Bar'], ],      
                ['Help', ['View Help', '---', 'About memopad'], ], ]
 
Ln_numb = 1
Col_numb = 1
#/the layout
layout = [[sg.Menu(menu_def)],
          [sg.Multiline(font=('Consolas', 12), size=(WIN_W, WIN_H-1), key='_BODY_')],
          [sg.StatusBar( text=f'| Ln{Ln_numb},Col{Col_numb}', size=(WIN_W,1), pad=(0,0), text_color='black', background_color='white', relief=sg.RELIEF_FLAT, justification='right', visible=False, key='status_bar' )]
          ]
 
#/window
window = sg.Window('untitled - notepad', icon=['D:/python/memopad/Notepad.ICO'], border_depth=0, layout=layout, element_padding=(0, 0), margins=(0, 0), resizable=True, return_keyboard_events=True, finalize=True)
window['_BODY_'].expand(expand_x=True, expand_y=True)
window['status_bar'].expand(expand_x=True, expand_y=True)
window['status_bar'].update(visible=False)
#~~~~event loop~~~~
status_bar_switch = True
while True:
    event, values = window.read()
    if event in (None, 'Exit'):
        break
 
    if event in ('Status Bar'):
        if status_bar_switch:
            window['status_bar'].update(visible=True)
            status_bar_switch = False
        else:
            window['status_bar'].update(visible=False)
            status_bar_switch = True

看起来不错吧

我所尝试的

  • 我向状态栏元素添加了pad(0,0)
  • 我将expand_row=True添加到.expand代码行中,但没有发现任何差异
  • 我试图改变元素的大小
  • 我试着用谷歌搜索答案
  • 我看了一下网站

  • 这是由上的pysimplegui解决的