标签: pysimplegui

PySimpleGUI 按下按钮时调用函数

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

python pysimplegui

8
推荐指数
1
解决办法
3万
查看次数

在进程中更新 GUI 项目

我正在尝试为我的应用程序制作一个 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

7
推荐指数
1
解决办法
3万
查看次数

如何在 PYsimpleGUI 中调整 sg.window 的大小?

我在 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 的大小?

python pip pysimplegui

7
推荐指数
1
解决办法
3万
查看次数

如何使用 PySimpleGui 从列表中创建单选按钮?

我想使用 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

6
推荐指数
1
解决办法
3482
查看次数

在 PySimpleGUI 中以编程方式使应用程序全屏

如何使PySimpleGUI 应用程序全屏打开,我的意思是占据整个屏幕,甚至不将任务栏留在屏幕底部?

此应用程序将在 Debian 8 上运行。

这该怎么做? 在此处输入图片说明

fullscreen python-3.x pysimplegui

6
推荐指数
1
解决办法
1万
查看次数

使用字典中的PNG文件在PySimpleGUI(Python)的“图像”小部件中显示

我有使用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的字典的特定值。

我该如何实现?

python user-interface pysimplegui

6
推荐指数
1
解决办法
160
查看次数

PySimpleGUI 获取选定的文本

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

6
推荐指数
1
解决办法
954
查看次数

更新 PySimpleGUI 中的单选按钮

我正在使用 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)

python radio-button pysimplegui

5
推荐指数
1
解决办法
5254
查看次数

PySimpleGUI 当前选择的选项卡及其键

在处理我的项目时,我遇到了有关 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 tabs key pysimplegui

5
推荐指数
1
解决办法
3410
查看次数

PySimpleGUI 表元素。如何读取选定的行?

我是 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)

python pysimplegui

5
推荐指数
1
解决办法
1万
查看次数