python3.8+PySimpleGUI+进度条代码大全

摘要:
')窗口。close()ZhuMain()breakelse:sg.Popup('请输入正确的帐户和密码,或退出。

1.python3.8+PySimpleGUI+进度条大全

2.效果图:

python3.8+PySimpleGUI+进度条代码大全第1张

3.代码:

#导出模块
import PySimpleGUI as sg
import time
import inspect
from progress.bar import IncrementalBar

#-----------登录界面,第1个窗口------------
def Denglu(): #登录界面,第1个窗口
    layout = [
              [sg.Text('账号:'),sg.Input(size=(20,1),key=('k1'))],
              [sg.Text('密码:'),sg.Input(size=(20,1),key=('k2'),password_char='*')],
              [sg.Submit(),sg.Cancel()],
             ]

    window = sg.Window('登录界面', layout)
    event, values = window.read()

    while True:
        if event == 'Cancel' or event == None: #成功
            window.close()
            break
        elif event =='Submit':  
            if values['k1']=='admin' and values['k2']=='123': 
            #这是指定账号和密码的,如果注册后,再从注册后的txt中调出,来判断?
                   sg.Popup('登录成功!')
                   window.close()
                   ZhuMain()
                   
                   break
            else:
               sg.Popup('请输入正确的账号和密码,否则退出。')
               break
        
    window.close() 

#-------------定义进度条的代码及函数-----------

#---定义函数:进度条1---
def Pb1():   #Pb=progress bar=进度条
    import time
    from progress.bar import IncrementalBar

    mylist = [1,2,3,4,5,6,7,8]
    bar = IncrementalBar('进度条1', max = len(mylist)) #len是测列表数据的个数,8个

    for item in mylist: 
        bar.next()
        time.sleep(0.1) #延迟时间,0.1~1,之间比较好

    bar.finish()

#---定义函数:进度条2---
def Pb2():
    from progress.bar import Bar
    import time

    bar = Bar('Loading', fill='~', suffix='%(percent)d%%') #fill里面可以填充自己喜欢的符号

    for i in range(100): #这个也需要适当调节
        bar.next() 
        time.sleep(0.1) #延迟时间,可调节,0.1~1之间最佳

    bar.finish()

#---定义函数:进度条3---
def Pb3():
    from progress.bar import Bar
    import time

    bar = Bar('进度条3', max=100) #max的值100,可调节

    for i in range(100): #这个也需要适当调节
        bar.next() 
        time.sleep(0.1) #延迟时间,可调节,0.1~1之间最佳

    bar.finish()

#---定义函数:进度条4---
def Pb4():
    from progress.bar import ChargingBar
    import time

    bar = ChargingBar('进度条4', max=100) #max的值100,可调节

    for i in range(100): #这个也需要适当调节
        bar.next() 
        time.sleep(0.1) #延迟时间,可调节,0.1~1之间最佳

    bar.finish()

#---定义函数:进度条5---
def Pb5():
    from progress.bar import FillingSquaresBar
    import time

    bar = FillingSquaresBar('进度条5', max=100) #max的值100,可调节

    for i in range(100): #这个也需要适当调节
        bar.next() 
        time.sleep(0.1) #延迟时间,可调节,0.1~1之间最佳

    bar.finish()

#---定义函数:进度条6---
def Pb6():
    from progress.bar import FillingCirclesBar
    import time

    bar = FillingCirclesBar('进度条6', max=100) #max的值100,可调节

    for i in range(100): #这个也需要适当调节
        bar.next() 
        time.sleep(0.1) #延迟时间,可调节,0.1~1之间最佳

    bar.finish()

def Pb7():
    from progress.bar import IncrementalBar
    import time

    bar = IncrementalBar('进度条7', max=100) #max的值100,可调节

    for i in range(100): #这个也需要适当调节
        bar.next() 
        time.sleep(0.1) #延迟时间,可调节,0.1~1之间最佳

    bar.finish()

def Pb8():
    from progress.bar import PixelBar
    import time

    bar = PixelBar('进度条8', max=100) #max的值100,可调节

    for i in range(100): #这个也需要适当调节
        bar.next() 
        time.sleep(0.1) #延迟时间,可调节,0.1~1之间最佳

    bar.finish()

def Pb9():
    from progress.bar import ShadyBar
    import time

    bar = ShadyBar('进度条9', max=100) #max的值100,可调节

    for i in range(100): #这个也需要适当调节
        bar.next() 
        time.sleep(0.1) #延迟时间,可调节,0.1~1之间最佳

    bar.finish()


def Pb10():
    from progress.spinner import Spinner
    #from progress.spinner import MoonSpinner
    #from progress.spinner import PieSpinner
    #from progress.spinner import PixelSpinner
    #from progress.spinner import LineSpinner

    import time

    bar = Spinner('进度条10', max=100) #max的值100,可调节
    #bar = MoonSpinner('进度条10', max=100)
    #bar = PieSpinner('进度条10', max=100)
    #bar = PixelSpinner('进度条10', max=100)
    #bar = LineSpinner('进度条10', max=100)

    for i in range(100): #这个也需要适当调节
        bar.next() 
        time.sleep(0.1) #延迟时间,可调节,0.1~1之间最佳

    bar.finish()

def Pb11():
    from alive_progress import alive_bar
    import time

    items = range(100)                 

    with alive_bar(len(items)) as bar:   
        for item in items:               
            bar()                      
            time.sleep(0.1)

def Pb12():
    import PySimpleGUI as sg
    import time

    mylist = [1,2,3,4,5,6,7,8]

    for i, item in enumerate(mylist):   
        sg.one_line_progress_meter('进度条12', i+1, len(mylist), '-key-')  
        time.sleep(1) #时间选择1最好,因为8个有点短


def Pb13(): #经典,整合后出现在GUI界面上
    import PySimpleGUI as sg
    import time

    mylist = [1,2,3,4,5,6,7,8]
    progressbar = [ [sg.ProgressBar(len(mylist), orientation='h', size=(51, 10), key='progressbar')]]
    outputwin = [ [sg.Output(size=(78,20))]]
    layout = [ [sg.Frame('Progress',layout= progressbar)], [sg.Frame('Output', layout = outputwin)], [sg.Submit('Start'),sg.Cancel()]]

    window = sg.Window('Custom Progress Meter', layout)

    progress_bar = window['progressbar'] 

    while True:   
        event, values = window.read(timeout=10)   
        if event == 'Cancel' or event is None:     
            break 
        elif event=='Start':  
            for i,item in enumerate(mylist):    
                print(item)    
                time.sleep(1)    
                progress_bar.UpdateBar(i+1)

    window.close()

# -------------------------------- GUI Starts Here -------------------------------#
# fig = your figure you want to display.  Assumption is that 'fig' holds the      #
#       information to display.                                                   #
# --------------------------------------------------------------------------------#
#主窗口界面设计
def ZhuMain():
    fig_dict = {'进度条1':Pb1,'进度条2':Pb2,'进度条3':Pb3,'进度条4':Pb4,'进度条5':Pb5,
               '进度条6':Pb6,'进度条7':Pb7,'进度条8':Pb8,'进度条9':Pb9,'进度条10':Pb10,
               '进度条11':Pb11,'进度条12':Pb12,'进度条13':Pb13}

    sg.theme('LightGreen') #主题背景设计,默认银河灰

# define the form layout
    listbox_values = list(fig_dict)
    
    col_listbox = [
               [sg.Listbox(values=listbox_values, enable_events=True, size=(28, len(listbox_values)), key='-LISTBOX-')],
               [sg.Text('' * 15)], 
               [sg.Exit(size=(5, 2))]
              ]
    
#布局
    layout = [
          [sg.Text('最全进度条及代码整理', font=('current 10'))],
          [sg.Col(col_listbox, pad=(5, (3, 330))), 
           sg.MLine(size=(50, 30), pad=(5, (3, 90)), key='-MULTILINE-')] ,#第2行有3个布局
          
         ]

# create the form and show it without the plot
    window = sg.Window('Python3下的最全的进度条整理', layout, grab_anywhere=False, finalize=True)

# The GUI Event Loop
    while True:
        event, values = window.read()
                # helps greatly when debugging
        if event in (None, 'Exit'):     # if user closed window or clicked Exit button
            break
         
        choice = values['-LISTBOX-'][0]   # get first listbox item chosen (returned as a list)
        func = fig_dict[choice]   # get function to call from the dictionary
        window['-MULTILINE-'].update(inspect.getsource(func))  # show source code to function in multiline
            
    window.close()

if __name__ == '__main__':
    Denglu()

免责声明:文章转载自《python3.8+PySimpleGUI+进度条代码大全》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇钉钉开发笔记(四)-签名验证问题的处理如何正确使用Profibus插头以及终端电阻下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

android的几种“通知”方式简单实现(Notification&NotificationManager)

  关于通知Notification相信大家都不陌生了,平时上QQ的时候有消息来了或者有收到了短信,手机顶部就会显示有新消息什么的,就类似这种。今天就稍微记录下几种Notification的用法。3.0以前的通知和3.0以后的通知是有些区别的。话不多说,直接上代码。   1、新建一个android项目     我新建项目的 minSdkVersion="1...

硬件平台上深度学习自动内核优化

硬件平台上深度学习自动内核优化 对于AI开发人员来说,在各种硬件平台上优化深度神经网络的性能仍然是一个难题。在系统支持方面,在这里面临着许多问题:将训练有素的模型从多个前端(例如Tensorflow,ONNX,MXNet)部署到多个硬件平台(例如CPU,GPU,加速器)。此问题最关键的性能部分,为不断增长的模型体系结构和硬件平台获得高性能的内核实现。 为了...

[StringUtil ] isEmpty VS isBlank

昨天才意识到这两个的存在。 Blank(空字符串 blank) StringUtils.isNoneBlank(null) = false StringUtils.isNoneBlank(null, "foo") = false StringUtils.isNoneBlank(null, null)...

那些H5用到的技术(1)——素材加载

编码环境前言什么时候用到素材加载?loading提示,让用户等待图片的加载音频的加载利用神器PreloadJS总结 编码环境 Sublime Text 3 插件包括: Autoprefixer 自动补全CSS ColorPicker 颜色选择器 ConvertToUTF8 转码 GBK Support 支持GBK HTML-CSS-JS Pre...

php : 类常量

使用总结: 1.不能使用 define 来定义 2.通过 "类名::常量名" 来获取 /** * PHP类常量 * * 类常量属于类自身,不属于对象实例,不能通过对象实例访问 * 不能用public,protected,private,static修饰 * 子类可以重写父类中的常量,可以通过(parent::)来调用父类中的常量 *...

ggplot2绘图入门系列之三:位置调整与条形图

    位置调整(Position adjustments)是针对同一图层内元素的位置进行微调的方法。它包括五种设置,分别是stack、dodge、fill、identity、jitter。 我们用条形图来展示其用法,仍使用mpg数据集,其中用到的变量是class,即生产汽车的类型,以及year生产年份。下面的条形图是将各类型的汽车数量进行汇集,并以年份作...