pysimplegui自选元素如何读取数值
时间: 2023-09-18 14:08:10 浏览: 31
如果您想要读取 PySimpleGUI 界面上某个自选元素的值,可以使用该元素的 `get()` 方法来获取它当前的数值。例如,如果您创建了一个 `Slider` 元素,并且想要读取它当前的值,可以使用以下代码:
```
import PySimpleGUI as sg
layout = [[sg.Slider(range=(0, 100), orientation='h', size=(20, 15), default_value=50, key='-SLIDER-')],
[sg.Button('Ok')]]
window = sg.Window('My Window', layout)
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED or event == 'Ok':
break
slider_value = values['-SLIDER-']
print(slider_value)
window.close()
```
在上面的例子中,我们通过 `values['-SLIDER-']` 来获取 `Slider` 元素的当前数值,并将其打印输出。当用户点击 `Ok` 按钮或关闭窗口时,程序会退出并关闭窗口。
相关问题
pysimplegui自选元素
PySimpleGUI 的自选元素(Custom Element)可以让您创建自定义的交互式界面元素,这些元素可以是任何您想要的内容,包括图像、文本、图表等等。自选元素允许您完全掌控您的界面,可以让您创建独特的、个性化的界面效果。
创建自选元素需要一些 Python 编程经验,您需要使用 `sg.Graph` 元素来绘制您的自选元素,并编写相应的事件处理函数来处理用户的交互行为。下面是一个简单的例子,演示了如何创建一个自选元素,让用户可以在上面绘制图形:
```
import PySimpleGUI as sg
# 定义自选元素的绘制函数
def draw_custom_element(canvas, size):
canvas.draw_rectangle((0, 0), size, fill_color='white', line_color='black')
canvas.draw_line((0, 0), size, color='black')
canvas.draw_line((0, size[1]), (size[0], 0), color='black')
# 创建界面布局
layout = [[sg.Graph((300, 300), (0, 0), (300, 300), key='-GRAPH-')],
[sg.Button('Exit')]]
# 创建界面窗口
window = sg.Window('Custom Element Demo', layout)
# 主循环
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED or event == 'Exit':
break
# 获取自选元素对象
graph = window['-GRAPH-'].TKCanvas
# 绘制自选元素
draw_custom_element(graph, (300, 300))
# 关闭窗口
window.close()
```
在上面的例子中,我们通过 `sg.Graph` 元素来创建一个自选元素,并在窗口中显示。我们定义了一个 `draw_custom_element` 函数来绘制自选元素的内容,然后在主循环中不停的调用该函数来更新自选元素的内容。当用户点击 `Exit` 按钮或关闭窗口时,程序会退出并关闭窗口。
python读取同花顺自选数据
可以使用Python的requests和BeautifulSoup库来读取同花顺自选数据。
首先,你需要登录同花顺网站并获取自选股的页面地址。然后,使用requests库发送GET请求获取页面内容,再使用BeautifulSoup库解析页面内容,提取出需要的自选股数据。
以下是读取同花顺自选数据的示例代码:
```python
import requests
from bs4 import BeautifulSoup
# 登录同花顺网站并获取自选股页面地址
# 这里假设已经登录,并且自选股页面的地址为http://i.thsi.cn/zixuan/
url = 'http://i.thsi.cn/zixuan/'
# 发送GET请求获取自选股页面内容
response = requests.get(url)
# 解析页面内容,提取自选股数据
soup = BeautifulSoup(response.text, 'html.parser')
stock_list = soup.find('ul', {'class': 'stock-list'}).find_all('li')
# 遍历自选股数据并输出
for stock in stock_list:
name = stock.find('span', {'class': 'name'}).text
code = stock.find('span', {'class': 'code'}).text
price = stock.find('span', {'class': 'price'}).text
print(name, code, price)
```
以上代码中,我们使用了find和find_all方法来查找页面中的元素。find方法可以查找指定标签名和属性的元素,返回第一个匹配的元素;find_all方法可以查找所有匹配的元素,返回一个列表。我们使用这些方法来提取出自选股列表中每个股票的名称、代码和当前价格,并输出到控制台。