如何在创建后修改ttkbootstrap ScrolledText组件的状态?
解决ttkbootstrap ScrolledText创建后修改状态的问题
问题原因
ttkbootstrap的ScrolledText是一个容器组件,它内部封装了原生的Text组件。直接对ScrolledText实例调用config()或configure()修改state会报错,因为这个容器本身并没有-state选项,真正的state属性属于它内部的Text子组件。
解决方案
通过ScrolledText实例的.text属性访问内部的原生Text组件,再对这个子组件进行状态修改即可。
修改后的示例代码
import ttkbootstrap as ttk from ttkbootstrap.scrolled import ScrolledText app = ttk.Window() # 带有自动隐藏垂直滚动条的滚动文本框 st = ScrolledText( app, padding=5, height=10, autohide=True, state='normal' ) st.pack(fill='both', expand=True) # 添加文本 st.insert('end', 'Insert your text here.') # 修改为正确的方式:访问内部Text组件修改状态 st.text.config(state='disabled') # 或者用configure也可以 # st.text.configure(state='disabled') app.mainloop()
补充说明
创建ScrolledText时能直接设置state,是因为组件初始化时会把这个参数传递给内部的Text组件,但后续调用config()时,是对容器本身操作,所以无法识别-state选项。
内容的提问来源于stack exchange,提问作者pfabri
相关产品推荐
相关产品推荐

