GVKun编程网logo

tkinter,笔记本,选择一个笔记时如何执行一个定义?(tkinter 选择文件)

1

如果您对tkinter,笔记本,选择一个笔记时如何执行一个定义?和tkinter选择文件感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解tkinter,笔记本,选择一个笔记时如何执行一个定义?的

如果您对tkinter,笔记本,选择一个笔记时如何执行一个定义?tkinter 选择文件感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解tkinter,笔记本,选择一个笔记时如何执行一个定义?的各种细节,并对tkinter 选择文件进行深入的分析,此外还有关于*#【Python】【基础知识】【模块】【tkinter】【学用 tkinter 画图 / 制作窗口】、5G for rail 笔记本、DDC/CI 实现主机(笔记本/台式)共享屏幕切换操作(软件切换输入源)、matplotlib tkinter AttributeError: 'AxesSubplot' 对象没有属性 'canvas' 并且 matplotlib 图形在我调整 tkinter 窗口大小之前不会更新的实用技巧。

本文目录一览:

tkinter,笔记本,选择一个笔记时如何执行一个定义?(tkinter 选择文件)

tkinter,笔记本,选择一个笔记时如何执行一个定义?(tkinter 选择文件)

如何解决tkinter,笔记本,选择一个笔记时如何执行一个定义?

我使用 tkinter,notebook 创建了一个 GUI:

  1. (batch_size,sequence_length,features)

我有一个要求: 在 gui 中,

如果我选择信息的笔记本,我要执行一个定义(如打印(信息选项卡已被选中))

如果我选择了coding的notebook,我要exec一个def(比如print(已经选择了coding的tab))

如果我选择python的notebook,我要exec一个def(比如print(python的tab已经被选中))

如何在代码中添加def?

非常感谢您的帮助。

解决方法

您可以做的是绑定 ttk.Notebook。它引发了一个虚拟事件

称为"<<NotebookTabChanged>>"

  1. def print_selected(event):
  2. text_tab=tabControl.tab(tabControl.select(),"text")
  3. print(f"Currently selected tab: {text_tab}")
  4. tabControl.bind("<<NotebookTabChanged>>",print_selected)

*#【Python】【基础知识】【模块】【tkinter】【学用 tkinter 画图 / 制作窗口】

*#【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

 

5G for rail 笔记本

5G for rail 笔记本

RMCS 旨在作为铁路通信的单一全球标准。它将取代全球移动通信系统(GSM-R),该系统将在 2030 年终止(或终止)。

FRMCS 是涵盖所有未来需要移动通信系统的铁路用例的总体标准。突出的例子包括欧洲铁路交通管理系统,其中 FRMCS 将取代 GSM-R,以及基于物联网(IoT)的维护或互联网上的乘客信息。

国际铁路联盟和欧洲铁路局的最新思想表明,显然倾向于 5G 作为 FRMCS 的基础,这一选择得到了许多欧洲主要铁路运营商的支持。

将 GSM-R 系统升级到 5G 无线通信的主要挑战是什么?

**
有三个主要障碍。第一个涉及阶段性过渡。新的 FRMCS / 5G 系统将需要与 GSM-R 并用数年。这需要深入了解 GSM-R 以及新的 FRMCS 系统的功能,以确保持续的平稳运行。

其次是各种车载系统。部署的技术将是纯 GSM-R,纯 FRMCS / 5G 以及两者的混合。所有这些都需要得到支持,诺基亚已经开发了 FRMCS / 5G 系统来支持这两种方法。在这样做时,我们考虑到现代 GSM-R 系统的很大一部分可以在 5G 世界中重用。

最后,还有技能问题。平稳迁移的首要任务是技术能力,因此迫切需要熟悉 GSM-R 和 FRMCS / 5G 的经验丰富的人员。大型铁路运营商已经在寻找必要的技能以管理迁移并并行运行两个网络方面面临挑战。

5G 技术将为铁路和乘客带来哪些具体优势?

JA: 5G 开辟了各种各样的用例。有了可用于铁路的新频谱,运营商和客户都将受益于其低延迟和高带宽。不过,最重要的是,旅客将受益于铁路系统内更高质量的服务。

当然,今天和明天的铁路乘客都希望始终保持联系。5G 将在信息娱乐服务(例如多媒体乘客信息系统和流服务)中实现巨大的飞跃。

这项新技术还将使乘客能够使用集成了车载视频内容的应用程序,从而提供实时的态势感知。例如,火车站位置或铁路运输占用水平的实时视频。

不过,最终 5G 的目的是提供更可靠的服务,降低的成本和更高的安全性。例如,通勤者和货运经营者的利益还包括自动火车运营,有可能消除铁轨上的所有信号并提高资产利用率。

5G 将如何帮助铁路改善服务以及维护和安全程序?

JA: 5G 不仅要为用户提供更多带宽,它还旨在用于工业用途,尤其是自动化和传感器通信。

传感器将用于监视轨道,机车车辆,电力系统和环境状况。5G 将使所有这些数据实时连接。与软件分析和机器学习结合使用时,这将使铁路运营商能够进行预防性维护,预测故障并预测洪水和其他可能中断服务的事件。

5G 可能带来的更高带宽将允许更多地使用高质量视频来实现安全性,运营人员之间的通信,在紧急事件,无人机检查以及生成视频和 / 或大量视频的大量其他应用程序中提高态势感知能力数据

英文原网

DDC/CI 实现主机(笔记本/台式)共享屏幕切换操作(软件切换输入源)

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接口等)

二、连接模式

  1. 鼠标,键盘,音响,其他控制器,全部接到显示器接口上;
  2. 显示器,Type-B转USB(其他控制器),miniDP转DP(视频输入输出),接入台式机;
  3. 显示器,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

 

 

matplotlib tkinter AttributeError: 'AxesSubplot' 对象没有属性 'canvas' 并且 matplotlib 图形在我调整 tkinter 窗口大小之前不会更新

matplotlib tkinter AttributeError: 'AxesSubplot' 对象没有属性 'canvas' 并且 matplotlib 图形在我调整 tkinter 窗口大小之前不会更新

如何解决matplotlib tkinter AttributeError: ''AxesSubplot'' 对象没有属性 ''canvas'' 并且 matplotlib 图形在我调整 tkinter 窗口大小之前不会更新

tkinter 画布上的 matplotlib 图给出错误 - ''Axessubplot'' 对象没有属性 ''canvas''

…………

  1. # Create window
  2. window = tkinter.Tk()
  3. window.resizable()
  4. window.state(''zoomed'')
  5. # Create Title
  6. window.title(''Title'')
  7. # adding frame of buttons
  8. BFrame = tkinter.Frame(window)
  9. BFrame.pack(side=tkinter.TOP)
  10. # This defines the Python GUI backend to use for matplotlib
  11. matplotlib.use(''TkAgg'')
  12. # Initialize matplotlib figure for graphing purposes
  13. fig = figure(figsize=(5,3),dpi = 100)
  14. global sbpt_1,sbpt_2,sbpt_3
  15. sbpt_1 = fig.add_subplot(1,3,1)
  16. sbpt_2 = fig.add_subplot(1,2)
  17. sbpt_3 = fig.add_subplot(1,3)
  18. #Rotating x-ticks
  19. sbpt_1.tick_params(axis=''x'',rotation=45)
  20. sbpt_2.tick_params(axis=''x'',rotation=45)
  21. sbpt_3.tick_params(axis=''x'',rotation=45)
  22. #subplot Titles
  23. sbpt_1.title.set_text(''Title A \\n'')
  24. sbpt_2.title.set_text(''Title B \\n'')
  25. sbpt_3.title.set_text(''Title C \\n'')
  26. fig.suptitle(''VISUALIZE FILES'')
  27. # Tight layout often produces nice results
  28. # but requires the title to be spaced accordingly
  29. fig.tight_layout()
  30. fig.subplots_adjust(top=0.82)
  31. # Special type of "canvas" to allow for matplotlib graphing
  32. display = figureCanvasTkAgg(fig,master=window)
  33. display.draw()
  34. display.get_tk_widget().pack(side=TOP,fill=BOTH,expand=1)
  35. #Navigator
  36. toolbar = NavigationToolbar2Tk(display,window)
  37. toolbar.update()
  38. display._tkcanvas.pack(side=BottOM,expand=1)
  39. .................
  40. def plot_utm():
  41. content.plot (color = ''#3BB9FF'',ax = sbpt_1)
  42. sbpt_1.canvas.draw()
  43. def plot_tm():
  44. shp_TM.plot(color = ''#4CC417'',ax = sbpt_2)
  45. sbpt_2.canvas.draw()
  46. def plot_om():
  47. shp_TMOM.plot(color = ''#FFA62F'',ax = sbpt_3)
  48. sbpt_3.canvas.draw()
  49. .........
  50. # To make the window running
  51. window.mainloop()

This error comes up.

Plot on Tkinter Canvas even after clicking on visualize button

完整代码的这几行有问题。 如果我运行此代码,则会出现错误 - ''Axessubplot'' 对象没有属性 ''canvas'' 单击可视化按钮后,绘图不会出现在画布上,但如果我使用最小化/最大化按钮调整窗口大小,则会出现绘图。

有人可以帮助解决这些错误吗? 如果您还发现任何其他错误,请告诉我。

解决方法

通过更新函数解决的问题

  1. def plot_utm():
  2. sbpt_1 = fig.add_subplot(1,3,1)
  3. content.plot (color = ''#3BB9FF'',ax = sbpt_1)
  4. display.draw_idle()
  5. def plot_tm():
  6. sbpt_2 = fig.add_subplot(1,2)
  7. shp_TM.plot(color = ''#4CC417'',ax = sbpt_2)
  8. display.draw_idle()
  9. def plot_om():
  10. sbpt_3 = fig.add_subplot(1,3)
  11. shp_TMOM.plot(color = ''#FFA62F'',ax = sbpt_3)
  12. display.draw_idle()

关于tkinter,笔记本,选择一个笔记时如何执行一个定义?tkinter 选择文件的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于*#【Python】【基础知识】【模块】【tkinter】【学用 tkinter 画图 / 制作窗口】、5G for rail 笔记本、DDC/CI 实现主机(笔记本/台式)共享屏幕切换操作(软件切换输入源)、matplotlib tkinter AttributeError: 'AxesSubplot' 对象没有属性 'canvas' 并且 matplotlib 图形在我调整 tkinter 窗口大小之前不会更新的相关信息,请在本站寻找。

本文标签: