一、代码1:

#导出模块
import PySimpleGUI as sg
#总体布局,sg.InputText(),默认size=(45,1)。
layout = [
[sg.Text('Celcius(摄氏温度)'), sg.InputText(size=(15,1)),sg.Text('℃')], #第1行的3个布局
[sg.Submit()], #第2行
] #定义窗口即标题
#window = sg.Window('Temperature Converter').Layout(layout) #方法一layout布局
window = sg.Window('Temperature Converter',layout) #方法二layout布局
#get value (part of a list)
button, value = window.Read()
#定义按钮
if button is None:
exit(0)
#convert and create string
fahrenheit = round(9/5*float(value[0]) +32, 1) #公式,1为保留小数点后面1位
result = 'Temperature in Fahrenheit is(华氏温度是): ' + str(fahrenheit)+'℉' #定义
#display in Popup ,显示popup弹出框
sg.Popup('Result', result)

二、代码2:

#导出模块
import PySimpleGUI as sg
#自定义颜色,有点麻烦,也可以默认主题色,或者设置总体主题色
sg.SetOptions (background_color = 'LightBlue',
element_background_color = 'LightBlue',
text_element_background_color = 'LightBlue',
font = ('Arial', 10, 'bold'),
text_color = 'Blue',
input_text_color ='Blue',
button_color = ('White', 'Blue') #按钮颜色,白色字,蓝色背景颜色
)
#总体布局
layout = [
[sg.Text('Celcius(摄氏温度:)', size =(18,1)), sg.InputText(size = (15,1)),sg.Text('℃')],
[sg.Submit()]
]
#定义窗口即标题
#window = sg.Window('Temperature Converter').Layout(layout) #方法一layout布局
window = sg.Window('Temperature Converter',layout) #方法二layout布局
#读出win的数值
button, value = window.Read()
#定义按钮
if button is None:
exit(0)
#convert and create string
fahrenheit = round(9/5*float(value[0]) +32, 1) #公式,1为保留小数点后面1位
result = 'Temperature in Fahrenheit is(华氏温度是): ' + str(fahrenheit)+'℉' #定义
#display in Popup ,显示popup弹出框
sg.Popup('Result', result)

三、代码3:

#导出模块
import PySimpleGUI as sg
#自定义颜色
sg.SetOptions (background_color = 'LightBlue',
element_background_color = 'LightBlue',
text_element_background_color = 'LightBlue',
font = ('Arial', 10, 'bold'),
text_color = 'Blue',
input_text_color ='Blue',
button_color = ('White', 'Blue')
)
#update (via list) values and and display answers
#value[0] is celcius input, value[1] is input to place result.
#Use ReadButton with while true: - keeps window open.
#认识persistent form and bind key的学习 layout = [
[sg.Text('Enter a Temperature in Celcius')],
[sg.Text('Celcius', size =(8,1)), sg.InputText(size = (15,1))],
[sg.Text('Result', size =(8,1)), sg.InputText(size = (15,1))],
[sg.ReadButton('Submit', bind_return_key = True)]
]
#Return = button press
window = sg.Window('Converter').Layout(layout) while True:
#get result
button, value = window.Read()
#break out of loop is button not pressed.
if button is not None:
fahrenheit = round(9/5*float(value[0]) +32, 1)
#put result in 2nd input box
window.FindElement(1).Update(fahrenheit) else:
break

四、代码4:

#导出模块
import PySimpleGUI as sg
#自定义颜色
sg.SetOptions (background_color = 'LightBlue',
element_background_color = 'LightBlue',
text_element_background_color = 'LightBlue',
font = ('Arial', 10, 'bold'),
text_color = 'Blue',
input_text_color ='Blue',
button_color = ('White', 'Blue')
)
#name inputs (key) uses dictionary- easy to see updating of results
#value[input] first input value te c...
#学习named input keys and catch errors layout = [
[sg.Text('Enter a Temperature in Celcius')],
[sg.Text('Celcius', size =(8,1)), sg.InputText(size = (15,1),key = '_input_')],
[sg.Text('Result', size =(8,1)), sg.InputText(size = (15,1),key = '_result_')],
[sg.ReadButton('Submit', bind_return_key = True)]
] window = sg.FlexForm('Temp Converter').Layout(layout) while True:
button, value = window.Read()
if button is not None:
#catch program errors for text or blank entry:
try:
fahrenheit = round(9/5*float(value['_input_']) +32, 1)
#put result in text box
window.FindElement('_result_').Update(fahrenheit)
except ValueError:
sg.Popup('Error','Please try again')
else:
break

五、代码5:

#导出模块
import PySimpleGUI as sg
#个性化设置,可以不设置,那就是默认的银河灰
#Can use a variety of themes - plus individual options
sg.ChangeLookAndFeel('SandyBeach')
sg.SetOptions (font = ('Arial', 10, 'bold'))
#布局
layout = [
[sg.Text('Enter a Temperature in Celcius')], #第1行
[sg.Text('Celcius', size =(8,1)), sg.InputText(size = (15,1),key = '_input_')], #第2行
[sg.Text('Result', size =(8,1)), sg.InputText(size = (15,1),key = '_result_')], #第3行
[sg.ReadButton('Submit', bind_return_key = True)] #第4行
]
#定义窗口的标题和布局
window = sg.Window('Temp Converter').Layout(layout)
#循环设置
while True:
button, value = window.Read()
if button is not None:
#catch program errors for text, floats or blank entry:
#Also validation for range [0, 50],这是多指人体的温度范围,当然35℃都考虑低温了,很危险。
#input的key值的学习
#validation(验证) and look and feel的学习
try:
if float(value['_input_']) > 50 or float(value['_input_']) <0:
sg.Popup('Error','Out of range')
else:
fahrenheit = round(9/5*int(value['_input_']) +32, 1)
window.FindElement('_result_').Update(fahrenheit) #FindElement和Update的学习
except ValueError:
sg.Popup('Error','Please try again') else:
break

总结:

这是一个温度转换的Python的代码,用PySimpleGUI编写,注意其中几个不同之处。

1.layout的布局学习及在Window中的方式。

2.自定义背景颜色和默认背景颜色。

3.FindElement和Update的学习。

4.input的key值的学习。

5.validation(验证) and look and feel的学习。

python3.8的PySimpleGUI学习的温度转换(℃转℉)的更多相关文章

  1. Python学习之温度转换实例分析篇

    #TempConvert.py Tempstr=input('请输入要转换的温度值:') if Tempstr[-1] in ['C','c']: F=1.8*eval(Tempstr[0:-1])+ ...

  2. [Python3 练习] 001 温度转换1

    题目:温度转换 I (1) 描述 温度的刻画有两个不同体系:摄氏度 (Celsius) 和华氏度 (Fabrenheit) 请编写程序将用户输入的华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度 转换 ...

  3. [Python3 练习] 002 温度转换2

    题目:温度转换 II (1) 描述 温度的刻画有两个不同体系:摄氏度 (Celsius) 和华氏度 (Fabrenheit) 请编写程序将用户输入的华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度 转 ...

  4. 计算机二级Python学习笔记(一):温度转换

    今天通过一个温度转换的十行代码,理解了一些Python的基本元素. 所谓温度转换,就是摄氏度和华氏度的转换,要求输入摄氏度,可以输出华氏度,反之一样能实现.代码如下: #TempConvert.py ...

  5. ytu 2029: C语言实验——温度转换(水题)

    2029: C语言实验——温度转换 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 12  Solved: 10[Submit][Status][Web B ...

  6. 【笔记】嵩天.Python语言程序设计.完成两个简单实例(温度转换和绘图)

    [博客导航] [Python相关] 目标 使用PyCharm,完成两个小实例的编写和运行.一个是温度转换,一个是蟒蛇图形绘制. 过程 1.先设置project目录,虽然命名不是很正式,主要不太习惯软件 ...

  7. 温度转换-java

    java 温度转换 题目内容: 写一个将华氏温度转换成摄氏温度的程序,转换的公式是: °F = (9/5)*°C + 32 其中C表示摄氏温度,F表示华氏温度. 程序的输入是一个整数,表示华氏温度.输 ...

  8. Python3.x:基础学习

    Python3.x:基础学习 1,Python有五种标准数据类型 1.数字 2.字符串 3.列表 4.元组 5.字典 (1).数字 数字数据类型存储数字值.当为其分配值时,将创建数字对象. var1 ...

  9. 1001. 温度转换 (Standard IO)

    1001. 温度转换 (Standard IO) 时间限制: 1000 ms  空间限制: 262144 KB  具体限制   题目描述 将输入的华氏温度转换为摄氏温度.由华氏温度F与摄氏温度C的转换 ...

随机推荐

  1. 同步异步IO,阻塞非阻塞

    同步异步 同步IO操作:导致请求进程阻塞,知道IO操作完成. 异步IO操作:不导致进程阻塞. 在处理(网络) IO 的时候,阻塞和非阻塞都是同步IO, 阻塞,就是调用我(函数),我(函数)没有接收完数 ...

  2. selenium定位方法-iframe元素定位方法

    在自动化测试中,如果无法定位到一个元素,那么最大的可能是定位的元素是在iframe框架中,iframe对象代表一个HTML的内联框架,在HTML中,iframe每出现一次,一个iframe对象就会被创 ...

  3. 动态设置微信小程序 navigationBarTitle 的值

    wx.setNavigationBarTitle({ title:' 动态值 ' })

  4. Mysql SQL CAST()函数

    (1).CAST()函数的参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型.以下例子用于将文本字符串'12'转换为整型: SELECT CAST('12' AS int) (2).返回值是 ...

  5. 普及C组第二题(8.5)

    1565. [GDKOI]神秘山庄 (Standard IO) 时间限制: 1000 ms  空间限制: 262144 KB 题目: 翠亨村是一个神秘的山庄,并不是因为它孕育了伟人孙中山,更神秘的是山 ...

  6. 计算几何-poj2451-HPI

    This article is made by Jason-Cow.Welcome to reprint.But please post the article's address. 题意,求半平面交 ...

  7. buuctf 基础破解

    首先下载压缩包 解压之后发现是另一个压缩包 另一个压缩包上写着基础破解 然后用暴力破解的方法破解 然后搜了一下 暴力破解一般的长度是多少 然后搜到的结果是 长度为8的时候电脑都要破解好几年 所以我猜测 ...

  8. MXnet的使用

    关于MXnet的介绍: MXNet: A flexible and efficient library for deep learning. 这是MXNet的官网介绍,“MXNet是灵活且高效的深度学 ...

  9. MySQL 避免使用字符串类型作为标识列

    避免使用字符串类型作为标识列: 消耗空间. 比数字类型慢(MyISAM 中对字符串使用压缩索引,查询会慢). 对于 MD5().UUID() 生成的随机字符串,这些值会分布在很大的空间内,导致 ins ...

  10. 2017年陕西省网络空间安全技术大赛——人民的名义-抓捕赵德汉2——Writeup

    下载下来的文件是一个jar包,用die和binwalk检查,确实是一个纯正的jar包 java -jar FileName运行jar包,观察文件的外部特征,发现也是判断password的题目 ​ 用查 ...