在试图跑步的同时 此示例以测试matplotlib如何与Tkinter一起工作时,我收到错误:
(env)fieldsofgold@fieldsofgold-VirtualBox:~/new$ python test.py
Traceback (most recent call last):
File "test.py", line 7, in <module>
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
File "/home/fieldsofgold/new/env/local/lib/python2.7/site-packages/matplotlib/backends/backend_tkagg.py", line 13, in <module>
import matplotlib.backends.tkagg as tkagg
File "/home/fieldsofgold/new/env/local/lib/python2.7/site-packages/matplotlib/backends/tkagg.py", line 7, in <module>
from matplotlib.backends import _tkagg
ImportError: cannot import name _tkagg
Run Code Online (Sandbox Code Playgroud)
使用此处提供的解决方案,我尝试使用以下命令卸载matplotlib并安装tk和tk-dev软件包:
sudo apt-get install tk8.5
sudo apt-get install tk-dev
Run Code Online (Sandbox Code Playgroud)
然后重新安装matplotlib pip install matplotlib
但我仍然得到相同的错误.任何帮助,将不胜感激.我在VirtualBox上使用Ubuntu 14.04并在virtualenv环境中工作.非常感谢.
我正在用Python编写一个带有Tkinter UI的程序.我想要一个没有标题栏的小窗口.此窗口必须接收键盘输入.我不挑剔这是以Entry小部件的形式还是只是绑定到KeyPress.overrideredirect(True)通常是标题栏被禁用的方式.不幸的是,(除了在Windows中),这似乎阻止了许多事件被接收.我写了这段代码来说明问题:
#!/usr/bin/env python
from __future__ import print_function
import Tkinter
class AppWindow(Tkinter.Tk):
def __init__(self, *args, **kwargs):
Tkinter.Tk.__init__(self, *args, **kwargs)
self.overrideredirect(True)
self.geometry("400x25+100+300")
titleBar = Tkinter.Frame(self)
titleBar.pack(expand = 1, fill = Tkinter.BOTH)
closeButton = Tkinter.Label(titleBar, text = "x")
closeButton.pack(side = Tkinter.RIGHT)
closeButton.bind("<Button-1>", lambda event: self.destroy())
self.bind("<KeyPress>", lambda event: print("<KeyPress %s>" % event.char))
self.bind("<Button-1>", lambda event: print("<Button-1>"))
self.bind("<Enter>", lambda event: print("<Enter>"))
self.bind("<Leave>", lambda event: print("<Leave>"))
self.bind("<FocusIn>", lambda event: print("<FocusIn>"))
self.bind("<FocusOut>", lambda event: print("<FocusOut>"))
if __name__ == "__main__":
app = AppWindow()
app.mainloop() …Run Code Online (Sandbox Code Playgroud) 我正在开发一个使用Tkinter作为Window管理器的Python 3.3项目.我为画布设置了鼠标滚轮事件.滚动工作在Windows 7,8和Ubuntu中,但在Mac OS X Mountain Lion中使用Magic Mouse滚动时,程序会在Tk主循环中出现以下错误:
File "/Users/xxxx/Documents/Repositories/tycoon/agentsim.py", line 291, in start
self._root.mainloop()
File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/tkinter/__init__.py", line 1038, in mainloop
self.tk.mainloop(n)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe7 in position 0: invalid continuation byte
Run Code Online (Sandbox Code Playgroud)
我的代码是:
self._hscroll.configure( command=self._canvas.xview )
self._vscroll.configure( command=self._canvas.yview )
self._canvas.bind('<MouseWheel>', lambda event: self.rollWheel(event))
Run Code Online (Sandbox Code Playgroud)
其中hscroll和vscroll是表单中的滚动条对象.
如果我使用普通鼠标,则不会出现问题.当我尝试使用触控板滚动(惯性滚动打开)时也会发生这种情况
我是否必须更新Tk才能使此功能正常工作,或者它是否只是一般性地破坏了?
我需要一些帮助.我希望用户登录...一旦登录,将只启用与他允许访问的模块对应的菜单.所以,我需要在开始时禁用所有菜单(文件和帮助除外)..我需要在登录后启用相应的菜单...
登录代码还没写.我只想看看怎么做...我的代码如下:
import Tkinter as tk
class gv:
w = 800
h = 500
title = 'gsm ...'
MDLS = [['File','Settings','_s','Quit'],
['main menu','mm1','mm2'],
['second menu','sm1','sm2','sm3'],
['Help','About']]
class GammaSoft(tk.Frame):
def __init__(self, master):
tk.Frame.__init__(self, master, width=gv.w, height=gv.h)
self.master.title(gv.title)
self.master.resizable(0,0)
self.pack_propagate(0)
self.pack()
menu_bar = tk.Menu()
self.nMenu = []
mc = 0
for MDL in gv.MDLS:
self.nMenu.append(tk.Menu(menu_bar, tearoff=0))
for itm in MDL[1:]:
if itm == '_s':
self.nMenu[mc].add_separator()
else:
self.nMenu[mc].add_command(label=itm, command=lambda itm=itm: self.menu_call(itm))
menu_bar.add_cascade(label=MDL[0], menu=self.nMenu[mc])
mc += 1
self.master.config(menu=menu_bar)
frame1 = tk.Frame(self)
frame1.pack()
lblUsername = …Run Code Online (Sandbox Code Playgroud) Tcl/Tk是一种编写小型GUI脚本的简单方法.
任何人都可以用按钮和文本小部件给出一个很好的例子.按下按钮时,应执行shell命令,并将输出传送到文本小部件.
如果您有其他有用的任务的漂亮和干净的示例,请添加它们.
我是一名C程序员,不想处理C++工具包,我正在尝试构建一个简单的图形卡游戏.我在Linux下编程,但我想选择Windows端口.根据我的阅读,我的选择是GTK +和Tk.
我正在学习一些GTK +教程,我可能会坚持这一点,但我不认为我给Tk一个公平的镜头.麻烦的是,我能找到的所有Tk文档都是将Tk与{Tcl,Ruby,Perl,Python}一起使用,或者将Tcl解释器嵌入到C程序中并以这种方式使用Tk.是否有一种简单的(-ish)方式使用Tk为C程序构建GUI而不必过多地忽略Tcl?
理想情况下,是否有一个教程(TkDocs Tk教程的内容),但使用类似Tk C API的东西?
我用Python编写了一个带有tkinter GUI前端的程序.从脚本运行时没有问题.
我使用cx_freeze将它打包到exe文件中,并从那里运行它适用于大多数程序.但是,它有一个问题:当尝试为其中一个函数中的StringVar对象赋值时,会引发异常并终止程序.
当从程序中的不同点访问相同的功能时,它正常运行.知道什么可能是错的吗?
导致该问题的代码部分如下(我添加了消息框,以便我可以看到它失败的原因):
if keyDetail.get('default', False):
try:
self.entries[key].set(keyDetail['default'])
except Exception as err:
messagebox.showinfo('error', 'key: %s, default: %s, error: %s'%(key, keyDetail['default'], err))
Run Code Online (Sandbox Code Playgroud)
self.entries[key]是一个tk.StringVar.
运行此命令时,我在消息框中收到以下消息:
key: orderNo, default: Order Number, error: can't set "PY_VAR16:0"
我有一个关于如何有效地将任何类型的外部包加载到R中的一般性问题.我发现许多详细说明这些信息的来源是不够的,但我将不再提及那些相应的URL.我之前已成功将外部软件包加载到R中,但是我在加载fgui软件包时遇到了困难.
在我的具体情况下,我无法将库加载fgui到R Studio中.首先,我使用以下命令直接从CRAN下载:
install.packages("fgui", lib="~/Documents/R_dir")
Run Code Online (Sandbox Code Playgroud)
这对我来说很好.我的工作目录设置为〜/ Documents/R_dir
我使用的下一个命令是:
library("fgui", lib.loc="~/Documents/R_dir")
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
Error : .onLoad failed in loadNamespace() for 'tcltk', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.1/Resources/library/tcltk/libs/tcltk.so':
dlopen(/Library/Frameworks/R.framework/Versions/3.1/Resources/library/tcltk/libs/tcltk.so, 10): Library not loaded: /opt/X11/lib/libX11.6.dylib
Referenced from: /Library/Frameworks/R.framework/Versions/3.1/Resources/library/tcltk/libs/tcltk.so
Reason: image not found
Error: package or namespace load failed for ‘fgui’
Run Code Online (Sandbox Code Playgroud)
我已经检查了线程" 在R中尝试加载库(ggplot2)时出错 "但它没有回答我的问题.
请帮助我提供任何建议,以使程序包fgui在R Studio中正常工作,并随时解决有效将外部程序包加载到R中的更一般问题.
我的理解是tkinter程序的标准设置就像这样开始:
from tkinter import *
from tkinter import ttk
Run Code Online (Sandbox Code Playgroud)
我知道tkinter是一个包,但如果我已经导入了所有包,我*为什么还需要导入ttk呢?如果我拿出第二行并尝试引用,为什么会出现错误ttk?
我开始在python中使用TK为我的程序构建一个图形界面.我无法修复2个问题:(1)窗口中按钮的位置和(2)在一个功能内使用一个无线电按钮的值.
这是我目前的代码:
root = tk.Tk()
root.title("START")
root.geometry("500x200+500+200")
v = tk.IntVar()
v.set(0) # initializing the choice
my_choise = [
("Basic",1),
("Advanced",2),
('Extreme',3)
]
def ShowChoice():
print(v.get())
tk.Label(root,
text="""Choose your configuration:""",
justify = tk.LEFT,
padx = 20).pack()
val = 0
for val, choise in enumerate(my_choise):
tk.Radiobutton(root,text=choise,padx = 20,variable=v,command=ShowChoice,value=val).pack(anchor=tk.W)
def star_program(value):
os.system("ifconfig")
def open_comments_file():
os.system("gedit /home/user/Desktop/comments.txt")
def open_links_file():
os.system("gedit /home/user/Desktop/links.txt")
frame = tk.Frame(root)
frame.pack()
open_file_c = tk.Button(frame,
text="Comments",
command=open_comments_file)
open_file_f = tk.Button(frame,
text="Links",
command=open_links_file)
button = tk.Button(frame,
text="Start",
command=star_program(v.get()))
button.pack(side=tk.LEFT)
open_file_f.pack(side=tk.LEFT)
open_file_c.pack(side=tk.LEFT)
slogan …Run Code Online (Sandbox Code Playgroud) tk-toolkit ×10
python ×6
tkinter ×5
tcl ×2
c ×1
cran ×1
cx-freeze ×1
linux ×1
matplotlib ×1
pip ×1
python-3.x ×1
r ×1
scripting ×1
virtualenv ×1