ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

pysimplegui多窗口设置

2022-09-12 14:34:39  阅读:236  来源: 互联网

标签:win1 win2 多窗口 pysimplegui Window Exit 设置 active sg


# -*- coding: utf-8 -*-
"""
Created on Mon Sep 12 11:39:42 2022

@author: Administrator
"""

import PySimpleGUI as sg
 
# Design pattern 2 - First window remains active
# 多窗口设计模式 1 - 两个窗口都处于活动状态
layout = [[ sg.Text('Window 1'),],
          [sg.Input(do_not_clear=True)],
          [sg.Text(size=(15,1), key='-OUTPUT-')],
          [sg.Button('Launch 2'), sg.Button('Exit')]]
 
win1 = sg.Window('Window 1', layout)
 
win2_active = False
while True:
    ev1, vals1 = win1.read(timeout=100)
    win1['-OUTPUT-'].update(vals1[0])
    if ev1 == sg.WIN_CLOSED or ev1 == 'Exit' or ev1 == None:
        break
    
    if not win2_active and ev1 == 'Launch 2':
        win2_active = True
        layout2 = [[sg.Text('Window 2')],
                   [sg.Button('Exit')]]
 
        win2 = sg.Window('Window 2', layout2)
 
    if win2_active:
        ev2, vals2 = win2.read(timeout=100)
        if ev2 == sg.WIN_CLOSED or ev2 == 'Exit'  or ev2 == None:
            win2_active  = False
            win2.close()

win1.close()



import PySimpleGUI as sg
# Design pattern 1 - First window does not remain active
# 多窗口设计模式 2 - 只有 1 个活动窗口
layout = [[ sg.Text('Window 1'),],
          [sg.Input(do_not_clear=True)],
          [sg.Text(size=(15,1), key='-OUTPUT-')],
          [sg.Button('Launch 2'), sg.Button('Exit')]]
 
win1 = sg.Window('Window 1', layout)
 
win2_active = False
while True:
    ev1, vals1 = win1.read(timeout=100)
    win1['-OUTPUT-'].update(vals1[0])
    if ev1 == sg.WIN_CLOSED or ev1 == 'Exit' or ev1 == None:
        break
    
    if not win2_active and ev1 == 'Launch 2':
        win2_active = True
        layout2 = [[sg.Text('Window 2')],
                   [sg.Button('Exit')]]
 
        win2 = sg.Window('Window 2', layout2)
        win1.hide()
 
    if win2_active:
        ev2, vals2 = win2.read(timeout=100)
        if ev2 == sg.WIN_CLOSED or ev2 == 'Exit'  or ev2 == None:
            win2_active  = False
            win2.close()
            win1.un_hide()

win1.close()




# 多窗口设计模式 2 - 只有 1 个活动窗口
import PySimpleGUI as sg

def make_window1():
    layout = [[sg.Text('Window 1'), ],
              [sg.Input(key='-IN-')],
              [sg.Text(size=(20, 1), key='-OUTPUT-')],
              [sg.Button('Launch 2'), sg.Button('Output')]]

    return sg.Window('Window 1', layout, finalize=True)

def make_window2():
    layout = [[sg.Text('Window 2')],
               [sg.Button('Exit')]]
    return sg.Window('Window 2', layout, finalize=True)


def main():
    window2 = None
    window1 = make_window1()

    while True:
        window, event, values = sg.read_all_windows()
        if event == sg.WIN_CLOSED and window == window1:
            break

        if window == window1:
            window1['-OUTPUT-'].update(values['-IN-'])

        if event == 'Launch 2' and not window2:
            window1.hide()
            window2 = make_window2()

        if window == window2 and (event in (sg.WIN_CLOSED, 'Exit')):
            window2.close()
            window2 = None
            window1.un_hide()
    window1.close()

main()            

  

 

标签:win1,win2,多窗口,pysimplegui,Window,Exit,设置,active,sg
来源: https://www.cnblogs.com/andylhc/p/16686100.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有