python 笔记 PySimpleGUI 图形界面-3 获取文本框数值并调用方法显示在文本框内

本文介绍了一种使用Python和PySimpleGUI从特定文件中解析文本数据,并将这些数据展示在图形用户界面的方法。通过正则表达式匹配指定站号的数据,然后将获取到的气象信息如温度、湿度等更新到相应的输入框中。

获取文本框数值并调用方法显示在文本框内

import PySimpleGUI as sg      
import re
import datetime,time
import csv
import json

def xiaoshishuju(zhanhao,shijian):
    #设置正则匹配的公式
    zhengze=str(zhanhao)+r'(\s|\d|/)+(=)'
    with open('D:\\xiaoguan\\'+shijian+'00.txt')as aws:
        #读取所有文件数据
        wenjianneirong=aws.read()
    #以正则方式来匹配以站号的数据
    #正则的匹配方法re.search(参数1:正则公式,参数2:要匹配的数据)
    quyuzhan=re.search(zhengze,wenjianneirong)
    #判断否范围为空
    if quyuzhan == None:
        print('找不到'+zhanhao)
        return None
    else:
        #获取匹配处来的数据
        quyuzhanshuju=quyuzhan.group()
        #把匹配出来的数据作为参数来给方法来调用
        return quyuzhanshuju
#获取数据,分割并更新控件
def xianshushuju(shuju):
    window['-zhaohao-'].update(shuju[0:5])
    window['-wendu-'].update(shuju[58:61])
    window['-shidu-'].update(shuju[130:133])
    window['-fengxiang-'].update(shuju[58:61])
    window['-fengsu-'].update(shuju[62:65])
    window['-yuliang-'].update(shuju[100:104])
    window['-qiya-'].update(shuju[152:157])
    window['-nengjiandu-'].update(shuju[281:286])

sg.theme('BluePurple')    
layout = [[sg.Text('请输入站号:',size=(15,1)),sg.InputText(key='-INzhaohao-',size=(20,1))],      
          [sg.Text('请输入时间:',size=(15,1)),sg.Input(key='-INriqi-',size=(20,1))],   
          [sg.Text('站号:',size=(15,1)),sg.Input(key='-zhaohao-',size=(10,1))],
          [sg.Text('温度:',size=(15,1)),sg.Input(key='-wendu-',size=(10,1))], 
          [sg.Text('相对湿度:',size=(15,1)),sg.Input(key='-shidu-',size=(10,1))],  
          [sg.Text('10分钟平均风向:',size=(15,1)),sg.Input(key='-fengxiang-',size=(10,1))],
          [sg.Text('10分钟平均风速:',size=(15,1)),sg.Input(key='-fengsu-',size=(10,1))],
          [sg.Text('小时累计降雨量:',size=(15,1)),sg.Input(key='-yuliang-',size=(10,1))], 
          [sg.Text('气压:',size=(15,1)),sg.Input(key='-qiya-',size=(10,1))],
          [sg.Text('能见度:',size=(15,1)),sg.Input(key='-nengjiandu-',size=(10,1))],  
          [sg.Button('查询'), sg.Exit()]]      

window = sg.Window('区域站要素查询', layout)    
while True:                        
    event, values = window.read() 
    #print(event, values)       
    if event in (None, 'Exit'):      
        break      
    elif event == '查询':
    	#当点击查询就获取站号和时间作为参数去获取该站点数据
        shuju=xiaoshishuju(str(values['-INzhaohao-']),str(values['-INriqi-']))
        #如果没有站点数据提示没有数据
        if shuju == None:
            sg.popup('提示','找不到'+str(values['-INzhaohao-'])+'站的数据')
        #如果有站点数据把数据作为参数调用方法
        else:
        	#调用方法
            xianshushuju(shuju)


window.close()

数据格式为长文本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值