学习编程中的Ben 发表于 2023-7-18 17:46:09

ttkbootstrap求助

教程里有一段完整的代码:
import ttkbootstrap as ttk

# 传统方法
root = ttk.Tk()
style = ttk.Style("darkly")

# 新方法
root = ttk.Window(themename="darkly")

但是我运行后报错:
Traceback (most recent call last):
File "D:\Program Files\JetBrains\PycharmProjects\pythonProject1\脚本3.0.py", line 4, in <module>
    root = ttk.Tk()
AttributeError: module 'ttkbootstrap' has no attribute 'Tk'

理论上来说TK函数ttk应该有的呀
@liuhongrun2022

陶远航 发表于 2023-7-18 17:46:24

根据你提供的错误信息,可以看到在第4行的代码中出现了一个属性错误。错误提示是AttributeError: module 'ttkbootstrap' has no attribute 'Tk',意思是ttkbootstrap模块没有名为Tk的属性。

根据你的代码和错误信息来看,问题可能出在导入的模块上。ttkbootstrap库中确实没有名为Tk的属性,所以无法使用ttk.Tk()来创建传统的Tk窗口。

相反,根据你提到的教程和最新的ttkbootstrap库,正确的做法是使用ttk.Window来创建窗口。因此,你需要将第4行的代码修改为root = ttk.Window(themename="darkly")。

修改后的代码如下所示:

import ttkbootstrap as ttk

# 传统方法
# root = ttk.Tk()
# style = ttk.Style("darkly")

# 新方法
root = ttk.Window(themename="darkly")


通过这样的修改,你应该能够成功创建一个使用ttkbootstrap主题的窗口。希望对你有所帮助!

isdkz 发表于 2023-7-18 17:46:35

题目:ttkbootstrap求助

回答:

首先,我感觉需要纠正一下你对 ttkbootstrap 库的理解,它实际上是建立在 tkinter 库的基础上,提供了一种用于美化应用程序的方式。

你的错误提示是“module 'ttkbootstrap' has no attribute 'Tk'”,这说明你正在尝试在 ttkbootstrap 模块中调用不存在的 Tk 。应该是你的代码中混淆了 tkinter 和 ttkbootstrap 。实际上, Tk 方法应从 tkinter 库中调用,而不是 ttkbootstrap 库。

同时, ttkbootstrap 库中并没有 Window 和 Style 这两个方法,你应该参考 ttkbootstrap 的正确使用方式。

下面是一个改正后的代码示例:

import tkinter as tk
import ttkbootstrap as tbs

root = tk.Tk()
style = tbs.Style('darkly')# 创建一个ttkbootstrap样式对象
style.theme_use('darkly')# 使用'darkly'主题

root.mainloop()

这段代码首先从 tkinter 库中实例化了一个Tk root窗口,然后通过 ttkbootstrap 创建了一个样式对象,并选择使用'darkly'主题。

希望这个解释能够帮到你。如果还有其他问题,欢迎继续提问。

学习编程中的Ben 发表于 2023-7-18 17:48:46

isdkz 发表于 2023-7-18 17:46
题目:ttkbootstrap求助

回答:

ttkbootstrap 库中有 Window这个方法

sfqxx 发表于 2023-7-18 17:48:59

你可能有些混淆了。`Tk` 是在 `tkinter` 包中定义的,而不是在 `ttkbootstrap` 中定义的。`ttkbootstrap` 是一个为 `tkinter` 提供样式支持的包。

你的代码应该如下:

from tkinter import Tk
import ttkbootstrap as ttk

root = Tk()
style = ttk.Style(root)
style.theme_use('darkly')

在这段代码中,我们首先从 `tkinter` 导入 `Tk`,然后创建根窗口。接着,我们创建一个 `ttkbootstrap` 的 `Style` 对象,并传入我们的根窗口。最后,我们使用 `theme_use` 方法将主题设置为 "darkly"。

至于你在脚本中看到的 "新方法":


root = ttk.Window(themename="darkly")
我记得`ttkbootstrap` 库并没有 `Window` 类,你可能需要更新你的 `ttkbootstrap` 版本或者检查你的教程是否有误。

如果你无法解决这个问题,我建议你检查你的 `ttkbootstrap` 版本,并确保它是最新的。你可以使用 `pip` 来更新:

pip install --upgrade ttkbootstrap如果更新后问题仍然存在,那么可能是你的教程有误。在这种情况下,我建议你寻找其他的 `tkinter` 和 `ttkbootstrap` 教程,或者查阅官方文档。

求最佳答案{:10_254:}

cjjJasonchen 发表于 2023-7-18 17:51:06

这个教程我也去看了,源码好像是这样的
import tkinter as tk
root = tk.Tk()
https://xxx.ilovefishc.com/forum/202307/17/161432nbtt5wj5m5rmetoe.gif

学习编程中的Ben 发表于 2023-7-18 17:53:30

cjjJasonchen 发表于 2023-7-18 17:51
这个教程我也去看了,源码好像是这样的

????????????
https://ttkbootstrap.readthedocs.io/en/latest/zh/gettingstarted/tutorial/#_5
点击目录的“选择主题”

学习编程中的Ben 发表于 2023-7-18 17:55:55

@陶远航 @isdkz @sfqxx
你们三个的chatgpt都没理解意思,还是我自己解决的
(我压根没发对正确的问题,问的问题都是有问题的{:10_260:})

歌者文明清理员 发表于 2023-7-18 17:56:53

学习编程中的Ben 发表于 2023-7-18 17:55
@陶远航 @isdkz @sfqxx
你们三个的chatgpt都没理解意思,还是我自己解决的
(我压根没发对正确的问题,问 ...

ttk.Window

学习编程中的Ben 发表于 2023-7-18 17:59:58

歌者文明清理员 发表于 2023-7-18 17:56
ttk.Window

不,这个代码压根就不完整{:10_256:}
所以我会用random函数确定最佳给谁{:10_279:}

歌者文明清理员 发表于 2023-7-18 18:00:53

学习编程中的Ben 发表于 2023-7-18 17:59
不,这个代码压根就不完整
所以我会用random函数确定最佳给谁

理论上来说TK函数ttk应该有的呀
错的
ttk有些没有的,比如text

liuhongrun2022 发表于 2023-7-18 19:04:44

ttkbootstrap里面没有Tk,用Window就行
import ttkbootstrap as ttk
root = ttk.Window(themename="darkly")

liuhongrun2022 发表于 2023-7-18 20:07:48

教程里有一段完整的代码:
官方文档里从来没有

liuhongrun2022 发表于 2023-7-18 20:25:20

@学习编程中的Ben 最佳给我吧,你看的哪个教程?
页: [1]
查看完整版本: ttkbootstrap求助