import PySimpleGUI as sg\nimport os\n\n layout = [[sg.Text('Velg mappe som skal tas backup av og hvor du vil plassere backupen')],\n [sg.Text('Source folder', size=(15, 1)), sg.InputText(), sg.FolderBrowse()],\n [sg.Text('Backup destination ', size=(15, 1)), sg.InputText(), sg.FolderBrowse()],\n [sg.Text('Made by Henrik og Thomas\xe2\x84\xa2')],\n [sg.Submit(), sg.Cancel()]]\n window = sg.Window('Backup Runner v2.1')\n\n event, values = window.Layout(layout).Read()\n
Run Code Online (Sandbox Code Playgroud)\n当我按下提交按钮时如何调用函数?或任何其他按钮?
\n我正在尝试为我的应用程序制作一个 GUI,但遇到了一个问题:使用时PySimpleGUI
我必须首先定义布局,然后才显示整个窗口。现在的代码是这样的:
import PySimpleGUI as sg
layout = [[sg.Text('Input:')],
[sg.Input(do_not_clear=False)],
[sg.Button('Read'), sg.Exit()],
[sg.Text('Alternatives:')],
[sg.Listbox(values=('value1', 'value2', 'value3'), size=(30, 2))]]
window = sg.Window('Alternative items', layout)
while True:
event, values = window.Read()
if event is None or event == 'Exit':
break
print(values[0])
window.Close()
Run Code Online (Sandbox Code Playgroud)
是否可以只在按下按钮Listbox
后显示?Read
因为我只会Listbox
在输入后获得值。也许可以在按钮事件后用新值更新列表框?
我在 python 代码中使用 PYsimpleGUI,在使用 window 元素创建主窗口时,这是我的代码。
我的代码:
import PySimpleGUI as sg
layout = [ [sg.Button('Close')] ]
window = sg.Window('This is a long heading.', layout)
while True:
event, values = window.read()
if event == sg.WIN_CLOSED or event == 'Close':
break
break
window.close()
Run Code Online (Sandbox Code Playgroud)
我注意到,当我运行该程序时,随着窗口自行调整大小并变小,不会显示完整标题。
有没有办法调整 sg.window 的大小?
我想使用 PySimpleGui 从列表动态创建单选按钮,但我在布局代码中插入循环的努力正在捕获语法错误。这可以用 API 来完成还是我需要用 tkinter 把它注销?我的列表是由网络驱动器的目标文件搜索生成的。
我尝试连接“布局”,将单选按钮部分放在 for 循环中。还试图在 [sg.Radio()] 声明本身中插入一个 for 循环。两者都不起作用。
import PySimpleGUI as sg
xList = ['a', 'b', ... 'zz']
layout = [[sg.Text('Select a thingy')],
[sg.Radio(<for thingy in xList: 'thingy', thingy>)],
#^^^^^^ for loop is psuedo code
[sg.OK(), sg.Cancel()]]
Run Code Online (Sandbox Code Playgroud) 我有使用PySimpleGUI的Python GUI,它需要显示多个图形,我打算通过一组按钮进行导航。我知道我可以将所有图以PNG格式保存在给定的文件夹中,只需将它们加载到Image对象中,然后在单击按钮时使用元素的Update方法加载新图像。
如下所示的效果很好:
[sg.Image(filename=os.getcwd() + pngFileName, key='key1', size=(5, 6))]
Run Code Online (Sandbox Code Playgroud)
我需要传递要从当前目录中读取并显示在“图像”小部件中的图的文件名。
但这意味着我会将所有文件保存在一个文件夹中,而我更希望将所有PNG放在字典中,并在需要将给定文件名传递给sg.Image()时引用该字典。
我看到的好处是,这样一来,我不必占用硬盘驱动器上的空间来存储PNG,而且不必写然后从磁盘上读取,我想直接从磁盘上获取PNG会更快。运行时内存中的字典。
我无法实现此目标,因为代码似乎期望文件名具有特定路径,而不是传递包含PNG的字典的特定值。
我该如何实现?
PySimpleGUI 的新手。
我有一个多行输入框:
layout1 = [[sg.Multiline(size=(45,5),key='-IN-')],...
window1 = sg.Window('Source',layout1,finalize=True)
event1,values1 = window1.read()
Run Code Online (Sandbox Code Playgroud)
我输入一些文本,然后使用鼠标突出显示文本的一部分。如何获得选定(突出显示)的文本?
在 Tkinter 中,我只是使用了:
self.title = self.e.selection_get()
Run Code Online (Sandbox Code Playgroud)
但我喜欢我所看到的 PySimpleGUI,并会尝试坚持下去。
我已经在这里搜索过,github 和 google 并没有找到任何关于此的信息。希望这是简单的事情,并且有人能够指出我正确的方向。
谢谢,
兰迪
我正在使用 PySimpleGUI,我想在其中更新单选按钮。根据文档,单选按钮有一个更新方法。但不知怎的,它不能正常工作。
我编写了以下代码,该代码应将单选按钮的值从 Test 更新为 NewTest。结果依然是Test。
使用的代码如下:
import PySimpleGUI as sg
layout1 = [[sg.Radio('Test', "RADIO1", key='_RADIO1_', default=True, font=50)],
[sg.Button('Ok', font=50), sg.Button('Stop', font=50)]]
window = sg.Window('Read').Layout(layout1).Finalize()
while True:
window.Element('_RADIO1_').Update('NewTest')
button, values = window.Read()
exit()
Run Code Online (Sandbox Code Playgroud) 在处理我的项目时,我遇到了有关 PySimpleGUI 中选项卡和选项卡组的问题。是否有返回当前选定选项卡的函数?有很多选项卡,我希望能够选择每个选项卡(但不是同时)并返回当前所选选项卡/活动选项卡的密钥。我已经尝试过.Get()和.Select()但似乎这些都不起作用,或者我可能做错了什么?请记住我是一个完全的初学者。我还确保在每个选项卡中启用事件。我做了这样的事情:curr_sel_tab= tab_group.find_key_from_tab_name(tab_group.Get())但它返回选项卡的名称而不是键。
基本上我的应用程序连接到数据库。我想做的是选择选项卡中的一行(1、2、3 或 4)并将其删除。但为了做到这一点,我需要一个选项卡的键(我猜)。下面您可以找到我粘贴的代码片段以及我的应用程序的屏幕截图。
import PySimpleGUI as sg
import baza # external file with my databse
sg.theme("GreenTan")
left_col = [sg.Button("Create")],[sg.Button("Read")],[sg.Button("Update")],[sg.Button("Delete")]
data = baza.get_db_obiad()
print(data)
headings2 = ['Id', 'Name', '1', '2', '3']
layout_1 = [[sg.Table(values=data[0:][:], headings=headings2, max_col_width= True,
auto_size_columns=False,
display_row_numbers=False,
enable_events=True,
justification='c',
alternating_row_color='lightyellow',
key='-TAB_1-',
row_height=35)]]
data1 = baza.get_db_podkladka()
headings3 = ['Id','Name']
layout_2 = [[sg.Table(values=data1[0:][:], headings=headings3, max_col_width= True,
auto_size_columns=False,
display_row_numbers=False,
enable_events=True,
justification='c',
alternating_row_color='lightyellow',
key='-TAB_2-',
row_height=35)]]
data2 = baza.get_db_mieso()
headings4 = ['Id','Name']
layout_3 = …
Run Code Online (Sandbox Code Playgroud) 我是 Python 的初学者,更是 PySimpleGui 的初学者,我非常喜欢使用它来创建带有 GU 界面的小型应用程序。我遇到的问题是关于表格元素的。到目前为止,我已成功使用 sqlite 数据库中的数据填充表元素。一旦表格准备好数据,我就可以突出显示特定行。由于我不知道表元素触发了任何事件,因此我放置了一个按钮,在选择一行后单击该按钮,然后执行与单击事件关联的代码。表格准备好,选择行,单击按钮,现在,如何获取整个行值?我尝试了“values[' mytable ']”,但结果有点像表索引。我想要一个值列表。是否可以 ?谢谢你的帮助。
布局:
data_values = []
data_headings = ['File ID', 'Type', 'Description', 'Remarks']
data_values.append(['', '', '', ''])
data_cols_width = [5, 8, 35, 35]
tab5_layout = [
[sg.Table(values=data_values, headings=data_headings,
max_col_width=65,
col_widths=data_cols_width,
auto_size_columns=False,
justification='left',
num_rows=6, key='_filestable_')],
[sg.Button('Select Row', key='_rowselected_')]
Run Code Online (Sandbox Code Playgroud)
事件:
if event == '_rowselected_':
te1 = values['_filestable_']
print('Event triggered : ', te1)
Run Code Online (Sandbox Code Playgroud)