所以基本上,我正在尝试学习tkinter,但是PhotoImage小工具将无法正常工作。
我的代码:
import tkinter as tk
root = tk.Tk()
logo = tk.PhotoImage(file ="monky.gif")
def test():
print("Hello World")
text = tk.Label(root, text = "Hello World")
text.pack()
我也尝试过:
logo = tk.PhotoImage(file ="/Users/MinecraftMaster/Desktop/Python/Tests/monky.gif")
错误消息:
Traceback (most recent call last):
File "/Users/MinecraftMaster/Desktop/Python/Tests/Tkinter Test.py", line 4, in <module>
logo = tk.PhotoImage(file ="monky.gif")
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/tkinter/__init__.py", line 3539, in __init__
Image.__init__(self, 'photo', name, cnf, master, **kw)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/tkinter/__init__.py", line 3495, in __init__
self.tk.call(('image', 'create', imgtype, name,) + options)
_tkinter.TclError: couldn't open "monky.gif": no such file or directory
这是我的目录的图片:
编辑:一位朋友帮助我解决了这个问题。对于其他遇到此问题的人,只需将目录放入变量中,然后调用它即可。感谢所有尝试提供帮助的人
答案 0 :(得分:-1)
您尚未放置包含标签之类照片的小部件,然后它应该出现。
import tkinter as tk
root = tk.Tk()
photo = tk.PhotoImage(file = "monkey.gif")
label = tk.Label(image = photo).pack()
def test():
print("Hello World")
text = tk.Label(root, text = "Hello World")
text.pack()
答案 1 :(得分:-1)
如果您要打开以下文件:
export class AuthGuard implements CanActivate {
private user$: Observable<User>;
constructor(
private service: UserService,
private router: Router
) {
this.user$ = service.user$;
}
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
return Observable.create((observer: NextObserver<boolean>) => {
this.user$.subscribe((user: User) => {
console.log('authguard', user);
console.log('authguard', user.email);
console.log('user.is_signed_in', user.is_signed_in);
if (!user.is_signed_in) {
console.log('redirecting to signin page');
this.router.navigate(
['user', 'signin'],
{
queryParams: {
url: state.url
}
}
);
}
observer.next(user.is_signed_in);
observer.complete();
});
});
}
}
然后,文件必须位于程序(将读取该文件)所在的文件夹中。例如:
monky.gif 路径:logo = tk.PhotoImage(file ="monky.gif")
程序路径:monky.gif
您尝试提供完整路径:
D:/foo/bar/monky.gif
但这不是完整路径。
完整路径为:
D:/foo/bar/example.py
即还要在路径之前添加带有冒号的磁盘名称。因此,请尝试:
logo = tk.PhotoImage(file ="/Users/MinecraftMaster/Desktop/Python/Tests/monky.gif")
答案 2 :(得分:-1)
您需要确保monky.gif
文件与python脚本文件位于同一目录中,例如monky.py
。
要显示图像,您需要在image=logo
方法中使用compound='top'
和tk.Label
选项来告诉tkinter同时显示图像和文本,例如图像位于顶部
希望以上帮助。
更新:如何检查monky.gif
文件与python脚本文件位于同一目录中。
打开一个终端,例如按Ctr
+ Alt
+ T
。如果您的图片和python文件位于Home_folder / Desktop / test_folders中,请在终端中键入cd
命令以进入您的文件夹(即目录)。然后使用ls
命令列出该文件夹中的文件。这些命令可帮助您查看python文件(例如monky.py
)和monky.gif
文件在同一目录中。如果这些文件不在同一文件夹中,则不会出现图像。
$ cd Desktop/test_folder/
$ ls
monky.gif monky.py