PySimpleGUI获取Button值?
时间: 2024-03-09 16:49:20 浏览: 22
PySimpleGUI中可以通过`event`属性获取点击的按钮的值。具体的实现可以参考以下代码:
```python
import PySimpleGUI as sg
layout = [[sg.Button('Button 1'), sg.Button('Button 2')]]
window = sg.Window('Window Title', layout)
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED:
break
if event == 'Button 1':
print('You clicked Button 1')
elif event == 'Button 2':
print('You clicked Button 2')
window.close()
```
这里的`event`即为点击的按钮的值,可以通过判断不同的`event`值来执行不同的操作。
相关问题
pysimplegui单选按钮元素如何获取数值
在 PySimpleGUI 中,单选按钮元素可以使用 `sg.Radio` 元素来创建。要获取单选按钮元素的值,您可以使用窗口对象的 `read` 方法来读取用户的输入。`read` 方法返回一个元组,其中包含两个值:事件字符串和一个字典,该字典包含所有界面元素的当前值。
例如,假设您有三个单选按钮,分别代表三种不同的选项,您可以使用以下代码来获取用户选择的选项:
```
import PySimpleGUI as sg
# 创建界面布局
layout = [[sg.Text('请选择一个选项:')],
[sg.Radio('选项1', 'RADIO1', default=True),
sg.Radio('选项2', 'RADIO1'),
sg.Radio('选项3', 'RADIO1')],
[sg.Button('确定')]]
# 创建界面窗口
window = sg.Window('单选按钮示例', layout)
# 主循环
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED:
break
if event == '确定':
option = values['RADIO1']
sg.popup(f'您选择了{option}。')
# 关闭窗口
window.close()
```
在上面的例子中,我们定义了一个包含三个单选按钮的界面,然后在主循环中读取用户的输入。当用户点击确定按钮时,我们可以通过 `values['RADIO1']` 来获取用户选择的选项,该值为 True 或 False,代表用户是否选择了该选项。注意,这里的 `'RADIO1'` 是单选按钮元素的组名,需要与 `sg.Radio` 元素的参数保持一致。
pysimplegui 如何复制table中的值
您可以使用 PySimpleGUI 中的 `Table` 元素和 `Clipboard` 模块来实现复制表格中的值。以下是一个简单的示例代码:
```python
import PySimpleGUI as sg
import random
import string
import tkinter as tk
# 生成随机字符串
def random_string(length):
letters = string.ascii_lowercase
return ''.join(random.choice(letters) for i in range(length))
# 生成表格数据
data = [[random_string(5) for i in range(5)] for j in range(5)]
# 定义表格布局
layout = [
[sg.Table(values=data, headings=['A', 'B', 'C', 'D', 'E'], num_rows=5, key='-TABLE-')],
[sg.Button('Copy')]
]
# 创建窗口
window = sg.Window('Copy Table', layout)
# 主循环
while True:
event, values = window.read()
if event in (sg.WIN_CLOSED, 'Exit'):
break
elif event == 'Copy':
# 获取选中的单元格
table = window['-TABLE-']
selected_cells = table.SelectedRows
if selected_cells:
# 将选中的单元格中的值复制到剪贴板
selected_values = [[table.GetCellValue(row, col) for col in range(len(data[0]))] for row in selected_cells]
clipboard_data = '\n'.join('\t'.join(row) for row in selected_values)
root = tk.Tk()
root.withdraw()
root.clipboard_clear()
root.clipboard_append(clipboard_data)
root.destroy()
# 关闭窗口
window.close()
```
在上面的代码中,我们首先使用 `Table` 元素创建了一个简单的表格,并在表格中填充了随机数据。然后,我们在窗口中添加了一个 `Copy` 按钮,当用户点击该按钮时,程序将选中的单元格中的值复制到剪贴板中。
在 `Copy` 按钮的事件处理程序中,我们首先获取了选中的单元格的行号,然后使用 `GetCellValue()` 方法获取对应单元格的值,并将这些值拼接成一个字符串。最后,我们使用 `Clipboard` 模块将该字符串复制到剪贴板中,以供用户粘贴。注意,为了使用 `Clipboard` 模块,我们需要先创建一个隐藏的 `tkinter` 窗口,并在其中调用剪贴板相关的方法。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)