Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的Python PySimpleGUI窗口不能右键单击,所以我可以从剪贴板粘贴?_Python_Click_Pysimplegui - Fatal编程技术网

为什么我的Python PySimpleGUI窗口不能右键单击,所以我可以从剪贴板粘贴?

为什么我的Python PySimpleGUI窗口不能右键单击,所以我可以从剪贴板粘贴?,python,click,pysimplegui,Python,Click,Pysimplegui,我尝试使用右键单击菜单将数据粘贴到窗口,但该选项根本不存在 import PySimpleGUI as sg layout = [[sg.Text('Name')], # main window [sg.InputText(key='-NAME-')], [sg.Text('Phone')], [sg.InputText(key="-PHONE-")], [sg.Text('Facebook ID')],

我尝试使用右键单击菜单将数据粘贴到窗口,但该选项根本不存在

import PySimpleGUI as sg

layout = [[sg.Text('Name')],  # main window
        [sg.InputText(key='-NAME-')],
        [sg.Text('Phone')],
        [sg.InputText(key="-PHONE-")],
        [sg.Text('Facebook ID')],
        [sg.InputText(key="-ID-")],
        [sg.Text('email')],
        [sg.InputText(key="-EMAIL-")],
        [sg.Cancel(key="-CANCEL-"), sg.Submit(key="-SUBMIT-")]
        ]
window = sg.Window('Facebook', layout)

while True:  # start here
    event, values = window.read()
    fb_id = values['-ID-']
    fb_name = values['-NAME-']
    my_phone = values['-PHONE-']
    fb_email = values["-EMAIL-"]
    if event == "-CANCEL-":
        break

tkinter不会自动提供多行元素的右键单击菜单。自动提供控件A、控件C等键盘绑定

这段代码将为多行元素提供一个简单的右键单击菜单

它还没有被添加到官方的演示程序中,但很快就会

将PySimpleGUI导入为sg
"""
演示-添加右键单击菜单以执行多行元素通用操作
有时多行元素可以从右键单击菜单中受益。没有默认菜单
这是tkinter附带的,所以您需要创建自己的。
一些常见的剪贴板操作类型
全选
复制
粘贴
削减
在这段代码中,基础小部件会被访问几次,因为设置选项,
获取它们的值和剪贴板操作当前未在API中公开
注意-使用tkinter时,如果使用内置剪贴板,则必须保留程序
正在运行以访问剪贴板。退出后,剪贴板将被删除。
您可以通过使用其他剪贴板软件包来解决此问题。
版权所有2021 PySimpleGUI
"""
右键单击菜单=['',['Copy','Paste','Select All','Cut']]
MLINE_键='-MLINE-'
布局=[[sg.Text('使用带有多行元素的自定义右键单击菜单')],
[sg.多行(大小=(60,20),键=多行键,右键单击菜单=右键单击菜单)],
[sg.B('Go')、sg.B('Exit')]]
window=sg.window('右键单击菜单多行',布局)
mline:sg.Multiline=窗口[mline_键]
尽管如此:
事件,值=window.read()#类型:(str,dict)
打印(事件、值)
如果事件发生(sg.WIN_关闭,“退出”):
打破
如果事件==“全部选择”:
mline.Widget.selection_clear()
mline.Widget.tag_add('sel','1.0','end'))
elif事件==“复制”:
尝试:
text=mline.Widget.selection\u get()
window.TKroot.clipboard\u clear()
window.TKroot.clipboard\u append(文本)
除:
打印('未选择任何内容')
elif事件==“粘贴”:
mline.Widget.insert(sg.tk.insert,window.TKroot.clipboard_get())
elif事件==‘剪切’:
尝试:
text=mline.Widget.selection\u get()
window.TKroot.clipboard\u clear()
window.TKroot.clipboard\u append(文本)
mline.update(“”)
除:
打印('未选择任何内容')
window.close()
这就是它在使用中的样子。。。。

谢谢你,迈克。是否有办法在屏幕上,在窗口布局内显示用户输入的内容?