pysimplegui多窗口设置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 | # -*- 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() |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2018-09-12 windows中连接hive-客户端
2018-09-12 shell中后台进程管理: ps -aux 详解