标签: tkinter

平台独立工具将文本复制到剪贴板

我正在尝试编写一个将字符串参数复制到剪贴板的函数.我打算在我一直在研究的Python脚本中使用它.这是我到目前为止(在另一个堆栈溢出帖子上发现大多数这个片段):

from tkinter import Tk

    def copy_to_clipboard(text):
        text = str(text)
        r = Tk()
        r.withdraw()
        r.clipboard_clear()
        r.clipboard_append(text)
        r.destroy()
Run Code Online (Sandbox Code Playgroud)

我的问题是,当脚本停止时,复制的文本不再在剪贴板上.

有没有可能的替代或解决方案?

我的问题有一个很好的平台独立解决方案吗?或者我是否必须检查用户所使用的操作系统并从那里开始?

python clipboard wxpython tkinter

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

如何使用Python中的复选框创建树视图

我一直在用Tkinter和Tix写一个小程序.我正处于需要带有复选框(检查按钮)的树视图的位置,因此我可以从树视图中选择项目.是否有捷径可寻?我一直在看ttk.Treeview(),它看起来很容易得到树视图,但有没有办法在视图中插入一个检查按钮?

一个简单的代码片段将非常感激.

我不仅限于ttk.什么都行; 只要我有一个示例或好的文档,我就可以使它工作

python tkinter tix ttk

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

Python未绑定方法TypeError

该方法get_pos应该抓住用户在条目中输入的内容.当get_pos被执行时,它返回一个:

TypeError:必须使用app instance作为第一个参数调用unbound方法get_pos()(没有任何内容)

码:

class app(object):
    def __init__(self,root):
        self.functionframe=FunctionFrame(root, self)
            self.functionframe.pack(side=BOTTOM)
    def get_pos(self):
        self.functionframe.input(self)
class FunctionFrame(Frame):
    def __init__(self,master,parent):
        Frame.__init__(self,master,bg="grey90")
        self.entry = Entry(self,width=15)
        self.entry.pack
    def input(self):
        self.input = self.entry.get()
        return self.input
Run Code Online (Sandbox Code Playgroud)

python methods tkinter

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

为什么在声明时执行Button参数"command"?

我是Python新手并试图用tkinter编写程序.为什么下面的Hello函数被执行了?据我了解,回调只会在按下按钮时执行?我很迷茫...

>>> def Hello():
        print("Hi there!")

>>> hi=Button(frame,text="Hello",command=Hello())
Hi there!
>>> 
Run Code Online (Sandbox Code Playgroud)

python tkinter callback

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

将Pygame窗口嵌入到Tkinter或WxPython框架中

我和朋友正在玩游戏.我们希望将一个pygame窗口嵌入到tkinter或WxPython框架中,以便我们可以包含WX或Tkinter支持的文本输入,按钮和下拉菜单.我已经在互联网上搜索了答案,但我发现所有人都在问同样的问题,这些都没有得到很好的回答.

实现嵌入到tkinter或WX帧中的pygame显示的最佳方法是什么?(TKinter更好)

将这些功能与pygame显示一起包含的任何其他方式也可以.

python embed pygame wxpython tkinter

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

如何在Tkinter中创建带有Label的超链接?

如何使用in Tkinter 创建超链接Label

快速搜索没有透露如何做到这一点.相反,只有在Text小部件中创建超链接的解决方案.

python label tkinter hyperlink

15
推荐指数
2
解决办法
2万
查看次数

无法在里面使用几何管理器包

所以我正在使用tkinter库创建一个rss阅读器,在我的一个方法中,我创建了一个文本小部件.它显示正常,直到我尝试向其添加滚动条.

这是滚动条前的代码:

   def create_text(self, root):
        self.textbox = Text(root, height = 10, width = 79, wrap = 'word')
        self.textbox.grid(column = 0, row = 0)
Run Code Online (Sandbox Code Playgroud)

这是我的代码之后:

def create_text(self, root):
        self.textbox = Text(root, height = 10, width = 79, wrap = 'word')
        vertscroll = ttk.Scrollbar(root)
        vertscroll.config(command=self.textbox.yview)
        vertscroll.pack(side="right", fill="y", expand=False)
        self.textbox.config(yscrllcommand=vertscroll.set)
        self.textbox.pack(side="left", fill="both", expand=True)
        self.textbox.grid(column = 0, row = 0)
Run Code Online (Sandbox Code Playgroud)

这给了我错误

_tkinter.TclError:不能在.56155888里面使用几何管理器包,它已经有一行由网格管理的子行在vertscroll.pack(side ="right",fill ="y",expand = False)

任何想法如何解决这一问题?

python geometry tkinter scrollbar

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

"update"和"update_idletasks"之间有什么区别?

effbot.org文档中,我们有关于该update功能的以下内容:

处理所有挂起事件,调用事件回调,完成任何挂起的几何管理,根据需要重绘小部件,以及调用所有挂起的空闲任务.应谨慎使用此方法,因为如果从错误的位置(例如,从事件回调中调用,或者从可以以任何方式从事件回调调用的函数等)调用它,可能会导致非常讨厌的竞争条件).如有疑问,请update_idletasks改用.

另一方面,这是关于update_idletasks功能:

调用所有待处理的空闲任务,而不处理任何其他事件.这可用于在必要时执行几何管理和重绘小部件,而无需调用任何回调.

据我所知,两者都调用所有挂起的空闲任务,完成任何挂起的几何管理根据需要重绘小部件.我看到的唯一区别是update 处理所有挂起事件调用事件回调.update我想这就是为什么我们不应该在一个甚至回调中打电话.

然而,我所看到的例子,其中update_idletasksupdate使用一个接一个,我不能明白其中的道理,因为从理论上讲update做的一切update_idletasks一样.

这些待处理事件究竟是什么以及文档正在讨论的空闲任务?有什么区别和关系?

话虽这么回答,在我应该使用什么是真正的情况updateupdate_idletasks?具体例子也是值得赞赏的.

python tkinter python-3.x

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

Tkinter:如何在画布窗口中获取框架以扩展到画布的大小?

所以我一直在使用tkinter中的canvas小部件来创建一个带有滚动条的标签框架.一切都很好,除了框架只扩展到放置在其中的标签的大小 - 我希望框架扩展到父画布的大小.

如果我在画布中使用pack(expand = True)(我已经在下面的代码中注释掉了),但是滚动条不起作用,这很容易就可以完成.

这是适当的代码:

        self.canvas = Canvas(frame, bg = 'pink')
        self.canvas.pack(side = RIGHT, fill = BOTH, expand = True)

        self.mailbox_frame = Frame(self.canvas, bg = 'purple')

        self.canvas.create_window((0,0),window=self.mailbox_frame, anchor = NW)

        #self.mailbox_frame.pack(side = LEFT, fill = BOTH, expand = True)

        mail_scroll = Scrollbar(self.canvas, orient = "vertical", 
            command = self.canvas.yview)
        mail_scroll.pack(side = RIGHT, fill = Y)

        self.canvas.config(yscrollcommand = mail_scroll.set)

        self.mailbox_frame.bind("<Configure>", self.OnFrameConfigure)


    def OnFrameConfigure(self, event):
        self.canvas.configure(scrollregion=self.canvas.bbox("all"))
Run Code Online (Sandbox Code Playgroud)

我还提供了带彩色框架的图像,这样你就可以看到我所得到的东西.粉红色区域是需要通过mailbox_frame填充的画布(您可以看到右侧的滚动条):

谢谢

python tkinter python-3.x tkinter-canvas

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

ImportError:libtk8.6.so:无法打开共享对象文件:没有这样的文件或目录

虽然是python的新手并且没有很多知识,但我遇到了问题.我试图添加一个GUI输入框,我发现你这样做的方法是使用一个名为tkiner的模块.当我试图通过ActivePython包在我的arch linux机器上安装它时,我收到以下错误:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.6/tkinter/__init__.py", line 36, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ImportError: libtk8.6.so: cannot open shared object file: No such file or directory

shell returned 1\
Run Code Online (Sandbox Code Playgroud)

这可能是一个常见的问题,但由于我缺乏知识,我觉得你和我一样简单......谢谢!

python tkinter arch

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