标签: tk-toolkit

在本地安装tkinter和python

我在服务器上使用linux.我没有root权限.我在本地安装了python-3.2.3到"/ home/sam/install_sam".当我导入tkinter模块.我收到以下错误:

ImportError: No module named _tkinter, please install the python-tk package
Run Code Online (Sandbox Code Playgroud)

我知道我需要安装Tkinter模块.因为我没有root权限.我不能像下面的命令一样使用:

apt-get install python-tk
sudo apt-get install python-tk
Run Code Online (Sandbox Code Playgroud)

我在goolge上搜索.我从 这里得到tcl/tk.我安装它们使用以下命令.

cd ~/Downloads/tcl8.5.11/unix
./configure --prefix=/home/sam/install_sam/tcl
make
make install

cd ~/Downloads/tk8.5.11/unix
./configure --prefix=/home/sam/install_sam/tk 
            --with- tcl=/home/sam/Downloads/tcl8.5.11/unix
make
make install

cd ~/Downloads/Python3.2.3/
export LD_LIBRARY_PATH=/home/sam/install_sam/tcl/lib:/home/sam/install_sam/tk/lib
export LD_RUN_PATH=/home/sam/install_sam/tcl/lib:/home/sam/install_sam/tk/lib
./configure --prefix=/home/sam/install_sam/python 
make
make install
Run Code Online (Sandbox Code Playgroud)

我仍然有错误:INFO:找不到Tcl/Tk库和/或标题.我应该如何为python配置tcl/tk

python linux tk-toolkit tkinter tcl

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

调用Tk()实际上做了什么?

当我看到NMT Tkinter 8.5参考文献中的一个最小例子时,我正在刷Tkinter.

#!/usr/bin/env python
import tkinter as tk

class Application(tk.Frame):    
    def __init__(self, master=None):    
        tk.Frame.__init__(self, master)
        self.grid()
        self.createWidgets()

    def createWidgets(self):    
        self.quitButton = tk.Button(self, text='Quit',command=self.quit)
        self.quitButton.grid()

app = Application()
app.master.title('Sample application')
app.mainloop()
Run Code Online (Sandbox Code Playgroud)

这一切都很好,直到我注意到Tk该类没有被初始化.在我可以找到的其他在线参考资料(Python的库参考,effbot.org,TkDocs)中,通常会调用root = tk.Tk()其他示例构建的参考资料.我也没有Tk在NMT的引用上看到任何类型的初始化类引用.

我可以得到的有关Tk该类的信息也很模糊,Python Reference仅将其列为"顶级窗口小部件......通常是应用程序的主窗口".最后,如果我替换前面提到的代码段中的最后几行:

root = tk.Tk()
app = Application(root)
Run Code Online (Sandbox Code Playgroud)

该程序将像以前一样运行.考虑到这一切,我有兴趣知道的是:

  • 调用root = tk.Tk()实际上是做什么的(例如,什么被初始化)以及为什么前一个片段在没有它的情况下工作?
  • 如果我不打电话Tk()并在Frame课堂上构建我的应用程序,我会遇到任何陷阱或限制吗?

python tk-toolkit tkinter

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

Python Tkinter抛出Tcl错误

我正在学习Python中的基本GUI,我遇到了一个示例,用于从Stack Overflow上的文件资源管理器中读取文件名.

from Tkinter import Tk
from tkFileDialog import askopenfilename
Tk().withdraw() # we don't want a full GUI, so keep the root window from appearing
filename = askopenfilename() # show an "Open" dialog box and return the path to the selected file
print(filename)
Run Code Online (Sandbox Code Playgroud)

当我尝试在IDLE中运行它时,这个特殊的脚本工作正常,但是如果我在Windows 7中从命令提示符处尝试,则不会运行.

Python版本:2.7.这是我得到的输出错误.

>>> from Tkinter import Tk
>>> from tkFileDialog import askopenfilename
>>> Tk().withdraw()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\Lib\lib-tk\Tkinter.py", line 1685, in __init__
self.tk = _tkinter.create(screenName, …
Run Code Online (Sandbox Code Playgroud)

tk-toolkit tkinter python-2.7

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

将C或numpy数组转换为具有最小份数的Tkinter PhotoImage

我知道通过Tkinter将MxNx3 numpy数组显示为RGB图像的配方,但我的配方在此过程中制作了几个数组副本:

a = np.random.randint(low=255, size=(100, 100, 3), dtype=np.uint8) # Original
ppm_header = b'P6\n%i %i\n255\n'%(a.shape[0], a.shape[1])
a_bytes = a.tobytes() # First copy
ppm_bytes = ppm_header + a_bytes # Second copy https://en.wikipedia.org/wiki/Netpbm_format
root = tk.Tk()
img = tk.PhotoImage(data=ppm_bytes) # Third and fourth copies?
canvas = tk.Canvas(root, width=a.shape[0], height=a.shape[1])
canvas.pack()
canvas.create_image(0, 0, anchor=tk.NW, image=img) # Fifth copy?
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

如何以最少的份数获得相同的结果?

理想情况下,我会创建一个numpy数组,它是Tkinter PhotoImage对象使用的相同字节的视图,有效地为我提供了一个PhotoImage可变的像素值,并使更新Tkinter显示更便宜和快速.我不知道如何从Tkinter中提取这个指针.

也许有一种通过ctypes的方式,正如这里暗示的那样?

这个PhotoImage.put()方法似乎很慢,但也许我错了,那是一条前进的道路?

我尝试制作一个bytearray()包含ppm标题和图像像素值,然后使用numpy.frombuffer()查看图像像素值作为一个numpy数组,但我认为PhotoImage构造函数想要一个bytes()对象,而不是一个bytearray()对象,而且我认为Tkinter复制字节的它data …

python tk-toolkit numpy tkinter tcl

10
推荐指数
2
解决办法
920
查看次数

在"文本"小部件中重新绑定"全选"

我正在使用Text小部件,我有一个关于Tk使用的旧式快捷方式的问题.

即:

全选:Ctrl + /vs Ctrl + a
Cut:Ctrl + wvs Ctrl + x
Copy:Meta + wvs Ctrl + c
Paste:Ctrl + yvsCtrl + v

在Windows上,除Ctrl + a外,它们都可以工作.

1)是否可以重定向绑定,所以.bind('<Control-a>')调用已绑定Ctrl + /?

2)我试过"全选":

txt_text.bind('<Control-a>', self.ctext_selectall)
Run Code Online (Sandbox Code Playgroud)

哪里:

def ctext_selectall(self, callback):
    """Select all text in the text widget"""
    self.txt_text.tag_add('sel', '1.0', 'end')
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为Ctrl + a默认工作(光标转到开始).它与其他一些未绑定的字母一起使用.如果不能解决1以下的解决方案,是否有机会使这项工作成功?

python tk-toolkit tkinter widget

9
推荐指数
1
解决办法
6139
查看次数

Tkinter在未聚焦的文本小部件上更改选择背景颜色

我试图在窗口小部件没有焦点时更改Mac OS X上Tkinter文本窗口小部件中所选文本的默认背景颜色.默认的未聚焦选择颜色为灰色.经过几个小时的搜索,我无法找到一个开箱即用的解决方案来做到这一点.这是我尝试过的:

  • selectbackground当窗口小部件未聚焦时,使用该选项更改选择颜色不会更改选择颜色.例如它保持灰色.
  • 也没有 Text.tag_configure("sel", background=...)
  • 使用ttk.Style.map"!focus"入境部件(及其他)国家的作品,而不是文本部件.

所以我不得不自己动手(见下文).有一个更好的方法吗?

import Tkinter as tk

# Replace 'tag_out' with 'tag_in'
def replace_tag(widget, tag_out, tag_in):
    ranges = widget.tag_ranges(tag_out)
    widget.tag_remove(tag_out, ranges[0], ranges[1])
    widget.tag_add(tag_in, ranges[0], ranges[1])

def focusin(e):
    replace_tag(e.widget, "sel_focusout", "sel")

def focusout(e):
    replace_tag(e.widget, "sel", "sel_focusout")


root = tk.Tk()

# Create a Text widget with a red selected text background
text = tk.Text(root, selectbackground="red")
text.pack()

# Add some text, and select it
text.insert("1.0", "Hello, world!")
text.tag_add("sel", "1.0", "end") …
Run Code Online (Sandbox Code Playgroud)

python tk-toolkit tkinter colors ttk

9
推荐指数
1
解决办法
7048
查看次数

Tkinter:Treeview小部件

目前我正在开发一个程序,它有自己的项目文件,里面就像子文件,我想知道如何使用treeview小部件显示项目文件中的所有子文件,Any Ideas?

提前致谢!

python treeview tk-toolkit tkinter

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

如何在Perl 5.004下增强Perl/TK GUI的外观?

我有一个应用程序,可以在使用Perl/TKGUI的Windows,Linux和Solaris上运行.由于条件的限制,我们只限于学习Perl/TK .而且,我们仅限于旧Perl/Tk版本5.00404.

我想在这些限制内工作,使GUI看起来尽可能美观和现代.

是否有任何网络资源具有传统知识设计方案(按钮,框架,颜色等),可以帮助我完成这项工作?


我也在寻找像我在这里找到的现代化建议:

如果您发现您的Tk应用程序在基于X的系统上看起来有点难看,请尝试在脚本顶部添加以下行:

$mw->optionAdd("*font", "-*-arial-normal-r-*-*-*-120-*-*-*-*-*-*");
$mw->optionAdd("*borderWidth", 1);
Run Code Online (Sandbox Code Playgroud)

perl user-interface tk-toolkit perltk

8
推荐指数
2
解决办法
2423
查看次数

在Windows平台上创建Tcl Starkit的步骤

我试图找出在Windows中创建Tcl starkit的基本步骤.之前我曾问过类似的问题,并购买了一本关于Tcl编程的书,访问了wiki.tcl.tk,直接通过电子邮件发送了Tcl程序员等等......总而言之,我从我的资源中得到了很好的反馈.网站; 但是,在构建批处理文件,使用命令控制台和创建目录时,我没有解释说我是一个完整的新手.

我真的需要有人基本上为我拼出一些东西,因为我似乎无法解释任何人试图告诉我的内容.我认为Visual Studio和.NET让我变得愚蠢:)

目前,我已经下载了tclkit,tclkitsh和sdx.kit,以及创建了一个简单的程序(Test_App.tcl).到目前为止,我知道我必须通过控制台(tclkitsh)运行sdx,创建一个批处理文件(sdx.bat),创建一个vfs目录,然后使用sdx wrap.我完全忘记了如何做这些简单的步骤.

这看起来似乎太多了,但如果有人能够用超级新手术语翻译,我会非常感激.我希望有类似的东西:在tclkitsh控制台中,输入以下内容......; 在tclkit.exe中,键入以下内容...; 现在你应该...... 并且.

谢谢,

DFM

tk-toolkit tcl starkit

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

尝试在Windows 7上安装MinGW和Tk for Perl

所以...我一直试图让这个工作几个星期了.我可以通过.exe安装MinGW,但不管我做什么我似乎无法获得支持或ppm安装MinGW以这样的方式工作,我的编译Tk-804.029将正确使用'make'命令.

(安装Perl模块:

  1. perl MakeFile.PL - 工作正常
  2. make或dmake - 我无法让MinGW正确关联Make或DMake(在MinGW/bin目录中找不到正确的.exe ...我尝试过使用-32bit mingw32-make.exe但是带来与编译的头文件有关的错误.

)

ppm安装MinGW也行不通,似乎觉得找不到包.所以我不知所措.系统在x64设置上运行Windows 7.

perl tk-toolkit mingw perltk mingw32

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