在本文中,我们将详细介绍pythontkinter,如何获取根/笔记本/框架中的元素?的各个方面,并为您提供关于python的tkinter如何获取输入框中的值的相关解答,同时,我们也将为您带来关于*
在本文中,我们将详细介绍python tkinter,如何获取根/笔记本/框架中的元素?的各个方面,并为您提供关于python的tkinter如何获取输入框中的值的相关解答,同时,我们也将为您带来关于*#【Python】【基础知识】【模块】【tkinter】【学用 tkinter 画图 / 制作窗口】、DDC/CI 实现主机(笔记本/台式)共享屏幕切换操作(软件切换输入源)、Jupyter 笔记本 Python 代码更改未反映、matplotlib tkinter AttributeError: 'AxesSubplot' 对象没有属性 'canvas' 并且 matplotlib 图形在我调整 tkinter 窗口大小之前不会更新的有用知识。
本文目录一览:- python tkinter,如何获取根/笔记本/框架中的元素?(python的tkinter如何获取输入框中的值)
- *#【Python】【基础知识】【模块】【tkinter】【学用 tkinter 画图 / 制作窗口】
- DDC/CI 实现主机(笔记本/台式)共享屏幕切换操作(软件切换输入源)
- Jupyter 笔记本 Python 代码更改未反映
- matplotlib tkinter AttributeError: 'AxesSubplot' 对象没有属性 'canvas' 并且 matplotlib 图形在我调整 tkinter 窗口大小之前不会更新
python tkinter,如何获取根/笔记本/框架中的元素?(python的tkinter如何获取输入框中的值)
如何解决python tkinter,如何获取根/笔记本/框架中的元素?
我使用 tkinter 创建 gui
remove(int index)
例如: 根 - 笔记本 - - 框架 ------树
所以,我的问题是:
如果我获得了 root,我如何获得 root 中的元素?
例如,如何获取 notebook/Frame/tree?
非常感谢您的帮助
解决方法
尝试属性 children
>>> root.children
{''!notebook'': <tkinter.ttk.Notebook object .!notebook>}
>>> tabControl.children
{''!frame'': <tkinter.Frame object .!notebook.!frame>}
>>> tab1.children
{''!treeview'': <tkinter.ttk.Treeview object .!notebook.!frame.!treeview>}
>>> tree.children
{}
*#【Python】【基础知识】【模块】【tkinter】【学用 tkinter 画图 / 制作窗口】
Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下:
Tkinter:
Tkinter 模块 (Tk 接口) 是 Python 的标准 Tk GUI 工具包的接口 .
Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。
Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。
wxPython:
wxPython 是一款开源软件
是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能健全的 GUI 用户界面。
Jython:
Jython 程序可以和 Java 无缝集成。
除了一些标准模块,Jython 使用 Java 的模块。
Jython 几乎拥有标准的 Python 中不依赖于 C 语言的全部模块。
比如,Jython 的用户界面将使用 Swing,AWT 或者 SWT。
Jython 可以被动态或静态地编译成 Java 字节码。
------ 本专题只介绍 tkinter------
需要注意的是:
1、tkinter 是每个 python 版本都内置的一个图形库
2、在使用 turtle 库的时候 turtle 这个库是会调用 tkinter 这个库的
3、这个库在 py2 和 py3 里的名字是不一样的 python2 叫 Tkinter,python3 叫 tkinter
使用 tkinter 画图:
1、画圆形
2、画直线
3、画方形
4、制作 Windows 窗口
5、tkinter 中各属性及方法的使用介绍:
一、画圆形
原题:
使用 tkinter 库画圆形。
原题给出的代码:
#!/usr/bin/python
# encoding=utf-8
# -*- coding: UTF-8 -*-
# 画图,学用circle画圆形。
if __name__ == ''__main__'':
from tkinter import *
canvas = Canvas(width=800, height=600, bg=''yellow'')
canvas.pack(expand=YES, fill=BOTH)
k = 1
j = 1
for i in range(0,26):
canvas.create_oval(310 - k,250 - k,310 + k,250 + k, width=1)
k += j
j += 0.3
mainloop()
输出结果:
二、画直线
原题:画图,学用 line 画直线
原题给出的代码:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
if __name__ == ''__main__'':
from tkinter import *
canvas = Canvas(width=300, height=300, bg=''green'')
canvas.pack(expand=YES, fill=BOTH)
x0 = 263
y0 = 263
y1 = 275
x1 = 275
for i in range(19):
canvas.create_line(x0,y0,x0,y1, width=1, fill=''red'')
x0 = x0 - 5
y0 = y0 - 5
x1 = x1 + 5
y1 = y1 + 5
x0 = 263
y1 = 275
y0 = 263
for i in range(21):
canvas.create_line(x0,y0,x0,y1,fill = ''red'')
x0 += 5
y0 += 5
y1 += 5
mainloop()
输出效果:
三、画方形
原题:
画图,学用 rectangle 画方形。
程序分析:
rectangle(int left, int top, int right, int bottom)
参数说明:(left ,top) 为矩形的左上坐标,(right,bottom) 为矩形的右下坐标,两者可确定一个矩形的大小
原题给出的代码:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
if __name__ == ''__main__'':
from tkinter import *
root = Tk()
root.title(''Canvas'')
canvas = Canvas(root,width = 400,height = 400,bg = ''yellow'')
x0 = 263
y0 = 263
y1 = 275
x1 = 275
for i in range(19):
canvas.create_rectangle(x0,y0,x1,y1)
x0 -= 5
y0 -= 5
x1 += 5
y1 += 5
canvas.pack()
root.mainloop()
输出结果:
四、使用 tkinter 制作 Windows 窗口:
源码:
#!/usr/bin/python
# -*- coding: GBK -*-
import tkinter
#import tkMessageBox #Py2.0中
import tkinter.messagebox #Py3.0中
top = tkinter.Tk()
def helloCallBack():
tkinter.messagebox.showinfo( "Hello Python", "Hello Runoob")
B = tkinter.Button(top, text ="sss", command = helloCallBack)
B.pack()
# 进入消息循环
top.mainloop()
效果:
点击按钮,出现:
其中 Tkinter 库的使用还需深入学习!
五、tkinter 库的使用介绍:(上述代码中已使用的)
tkinter 包含的方法:
>>> dir(tkinter)
[''ACTIVE'', ''ALL'', ''ANCHOR'', ''ARC'', ''BASELINE'', ''BEVEL'', ''BOTH'', ''BOTTOM'', ''BROWSE'', ''BUTT'', ''BaseWidget'', ''BitmapImage'', ''BooleanVar'', ''Button'', ''CASCADE'', ''CENTER'', ''CHAR'', ''CHECKBUTTON'', ''CHORD'', ''COMMAND'', ''CURRENT'', ''CallWrapper'', ''Canvas'', ''Checkbutton'', ''DISABLED'', ''DOTBOX'', ''DoubleVar'', ''E'', ''END'', ''EW'', ''EXCEPTION'', ''EXTENDED'', ''Entry'', ''Event'', ''EventType'', ''FALSE'', ''FIRST'', ''FLAT'', ''Frame'', ''GROOVE'', ''Grid'', ''HIDDEN'', ''HORIZONTAL'', ''INSERT'', ''INSIDE'', ''Image'', ''IntVar'', ''LAST'', ''LEFT'', ''Label'', ''LabelFrame'', ''Listbox'', ''MITER'', ''MOVETO'', ''MULTIPLE'', ''Menu'', ''Menubutton'', ''Message'', ''Misc'', ''N'', ''NE'', ''NO'', ''NONE'', ''NORMAL'', ''NS'', ''NSEW'', ''NUMERIC'', ''NW'', ''NoDefaultRoot'', ''OFF'', ''ON'', ''OUTSIDE'', ''OptionMenu'', ''PAGES'', ''PIESLICE'', ''PROJECTING'', ''Pack'', ''PanedWindow'', ''PhotoImage'', ''Place'', ''RADIOBUTTON'', ''RAISED'', ''READABLE'', ''RIDGE'', ''RIGHT'', ''ROUND'', ''Radiobutton'', ''S'', ''SCROLL'', ''SE'', ''SEL'', ''SEL_FIRST'', ''SEL_LAST'', ''SEPARATOR'', ''SINGLE'', ''SOLID'', ''SUNKEN'', ''SW'', ''Scale'', ''Scrollbar'', ''Spinbox'', ''StringVar'', ''TOP'', ''TRUE'', ''Tcl'', ''TclError'', ''TclVersion'', ''Text'', ''Tk'', ''TkVersion'', ''Toplevel'', ''UNDERLINE'', ''UNITS'', ''VERTICAL'', ''Variable'', ''W'', ''WORD'', ''WRITABLE'', ''Widget'', ''Wm'', ''X'', ''XView'', ''Y'', ''YES'', ''YView'', ''__builtins__'', ''__cached__'', ''__doc__'', ''__file__'', ''__loader__'', ''__name__'', ''__package__'', ''__path__'', ''__spec__'', ''_cnfmerge'', ''_default_root'', ''_exit'', ''_flatten'', ''_join'', ''_magic_re'', ''_setit'', ''_space_re'', ''_splitdict'', ''_stringify'', ''_support_default_root'', ''_test'', ''_tkerror'', ''_tkinter'', ''_varnum'', ''commondialog'', ''constants'', ''enum'', ''getboolean'', ''getdouble'', ''getint'', ''image_names'', ''image_types'', ''mainloop'', ''messagebox'', ''re'', ''simpledialog'', ''sys'', ''wantobjects'']
>>>
tkinter 为 module 类型
tkinter.ACTIVE 为 str 类型
tkinter.ACTIVE.capitalize 为内置方法 / 函数
>>> type(tkinter)
<class ''module''>
>>> type(tkinter.ACTIVE)
<class ''str''>
>>> type(tkinter.ACTIVE.capitalize)
<class ''builtin_function_or_method''>
>>>
1、tkinter.messagebox
2、tkinter.Button
3、tkinter.Tk
————————(我是分割线)————————
参考:
1. RUNOOB.COM:
https://www.runoob.com/python/python-exercise-example56.html / 画圆
https://www.runoob.com/python/python-gui-tkinter.html / Python GUI 编程 (Tkinter)
https://www.runoob.com/python/python-tk-button.html / 制作窗口
https://www.runoob.com/python/python-exercise-example57.html / 画直线
https://www.runoob.com/python/python-exercise-example58.html / 画方形
2、https://zhidao.baidu.com/question/432270397607348804.html
备注:
初次编辑时间:2019 年 10 月 6 日 21:42:39
第一次修改时间:2019 年 10 月 7 日 10:31:36 / 除画圆外,增加了其他功能模块;
第二次修改时间:2019 年 10 月 7 日 15:45:12 / 以模块知识点命名,逐步深入学习该模块的使用方法和经典案例。
环境:Windows 7 / Python 3.7.2
DDC/CI 实现主机(笔记本/台式)共享屏幕切换操作(软件切换输入源)
1台台式电脑、1台笔记本、1台戴尔显示器支持DDC/CI,实现共享屏幕软件切换输入源操作。
一、硬件设备
- 1台,台式机电脑(E3-1231V,16GB,N*硬盘)
- 1台,笔记本电脑(XPS 13 9360,i7-7560U,16GB,512GB,HD640,半血全功能雷电Type-C接口)
- 1台,戴尔显示器(U2515H,2K分辨率,支持DDC/CI-非常重要,miniDP,DP,Type-B接口等)
二、连接模式
- 鼠标,键盘,音响,其他控制器,全部接到显示器接口上;
- 显示器,Type-B转USB(其他控制器),miniDP转DP(视频输入输出),接入台式机;
- 显示器,DP转Type-C(全功能控制),接入笔记本;
三、软件实现
- https://github.com/dot-osk/monitor_ctrl (dot-osk/monitor_ctrl)
- Python3 (建议安装时选上Python Launcher)
- 支持DDC/CI的外接显示器,不支持笔记本内置显示器
在2台电脑上,下载后,直接解压,在文件所在目录,直接运行以下命令打开软件,可以看到输入信号选择名称:DisplayPort 1。
python monitor_ctrl.py
为了快速完成切换,可以不显示可视化窗口,做成 bat 可执行脚本。
- -c,不显示图形化窗口;
- -s,选择参数,具体看文档;
python monitor_ctrl.py -c -s input_src="DisplayPort 2"
or
python monitor_ctrl.py -c -s input_src="DisplayPort 1"
附自用脚本:
1 XPS DisplayPort.bat
@echo off
cls
color 0A
title Display XPS 13 9360 Type-C V1 DisplayPort 1
python D://DevInstallDoc/monitor_ctrl-master/monitor_ctrl.py -c -s input_src="DisplayPort 1"
2 XPS D And Close.bat
@echo off
cls
color 0A
title Display XPS 13 9360 Type-C V1 DisplayPort 1
python D://DevInstallDoc/monitor_ctrl-master/monitor_ctrl.py -c -s input_src="DisplayPort 1"
shutdown.exe -s -c "关机倒计时." -t 10
pause
3 PC DisplayPort.bat
@echo off
cls
color 0A
title Display PC miniDP V2 DisplayPort 2
python D://DevInstallDoc/monitor_ctrl-master/monitor_ctrl.py -c -s input_src="DisplayPort 2"
4 PC D And Close.bat
@echo off
cls
color 0A
title Display PC miniDP V2 DisplayPort 2
python D://DevInstallDoc/monitor_ctrl-master/monitor_ctrl.py -c -s input_src="DisplayPort 2"
shutdown.exe -s -c "关机倒计时." -t 10
pause
Jupyter 笔记本 Python 代码更改未反映
如何解决Jupyter 笔记本 Python 代码更改未反映
我正在研究 Jupyter 笔记本。 我有两个模块,一个用于前端,第二个用于后端文件处理。 我在文件处理的第二个模块中进行了一些逻辑更改。它还会读取参数文件,该文件已作为新逻辑的一部分进行更改。现在,在运行前端时,它不会选择新的更改。请告知如何解决该问题。我多次重新启动内核,但它不起作用。
matplotlib tkinter AttributeError: 'AxesSubplot' 对象没有属性 'canvas' 并且 matplotlib 图形在我调整 tkinter 窗口大小之前不会更新
如何解决matplotlib tkinter AttributeError: ''AxesSubplot'' 对象没有属性 ''canvas'' 并且 matplotlib 图形在我调整 tkinter 窗口大小之前不会更新
tkinter 画布上的 matplotlib 图给出错误 - ''Axessubplot'' 对象没有属性 ''canvas''
…………
# Create window
window = tkinter.Tk()
window.resizable()
window.state(''zoomed'')
# Create Title
window.title(''Title'')
# adding frame of buttons
BFrame = tkinter.Frame(window)
BFrame.pack(side=tkinter.TOP)
# This defines the Python GUI backend to use for matplotlib
matplotlib.use(''TkAgg'')
# Initialize matplotlib figure for graphing purposes
fig = figure(figsize=(5,3),dpi = 100)
global sbpt_1,sbpt_2,sbpt_3
sbpt_1 = fig.add_subplot(1,3,1)
sbpt_2 = fig.add_subplot(1,2)
sbpt_3 = fig.add_subplot(1,3)
#Rotating x-ticks
sbpt_1.tick_params(axis=''x'',rotation=45)
sbpt_2.tick_params(axis=''x'',rotation=45)
sbpt_3.tick_params(axis=''x'',rotation=45)
#subplot Titles
sbpt_1.title.set_text(''Title A \\n'')
sbpt_2.title.set_text(''Title B \\n'')
sbpt_3.title.set_text(''Title C \\n'')
fig.suptitle(''VISUALIZE FILES'')
# Tight layout often produces nice results
# but requires the title to be spaced accordingly
fig.tight_layout()
fig.subplots_adjust(top=0.82)
# Special type of "canvas" to allow for matplotlib graphing
display = figureCanvasTkAgg(fig,master=window)
display.draw()
display.get_tk_widget().pack(side=TOP,fill=BOTH,expand=1)
#Navigator
toolbar = NavigationToolbar2Tk(display,window)
toolbar.update()
display._tkcanvas.pack(side=BottOM,expand=1)
.................
def plot_utm():
content.plot (color = ''#3BB9FF'',ax = sbpt_1)
sbpt_1.canvas.draw()
def plot_tm():
shp_TM.plot(color = ''#4CC417'',ax = sbpt_2)
sbpt_2.canvas.draw()
def plot_om():
shp_TMOM.plot(color = ''#FFA62F'',ax = sbpt_3)
sbpt_3.canvas.draw()
.........
# To make the window running
window.mainloop()
This error comes up.
Plot on Tkinter Canvas even after clicking on visualize button
完整代码的这几行有问题。 如果我运行此代码,则会出现错误 - ''Axessubplot'' 对象没有属性 ''canvas'' 单击可视化按钮后,绘图不会出现在画布上,但如果我使用最小化/最大化按钮调整窗口大小,则会出现绘图。
有人可以帮助解决这些错误吗? 如果您还发现任何其他错误,请告诉我。
解决方法
通过更新函数解决的问题
def plot_utm():
sbpt_1 = fig.add_subplot(1,3,1)
content.plot (color = ''#3BB9FF'',ax = sbpt_1)
display.draw_idle()
def plot_tm():
sbpt_2 = fig.add_subplot(1,2)
shp_TM.plot(color = ''#4CC417'',ax = sbpt_2)
display.draw_idle()
def plot_om():
sbpt_3 = fig.add_subplot(1,3)
shp_TMOM.plot(color = ''#FFA62F'',ax = sbpt_3)
display.draw_idle()
今天关于python tkinter,如何获取根/笔记本/框架中的元素?和python的tkinter如何获取输入框中的值的讲解已经结束,谢谢您的阅读,如果想了解更多关于*#【Python】【基础知识】【模块】【tkinter】【学用 tkinter 画图 / 制作窗口】、DDC/CI 实现主机(笔记本/台式)共享屏幕切换操作(软件切换输入源)、Jupyter 笔记本 Python 代码更改未反映、matplotlib tkinter AttributeError: 'AxesSubplot' 对象没有属性 'canvas' 并且 matplotlib 图形在我调整 tkinter 窗口大小之前不会更新的相关知识,请在本站搜索。
本文标签: