GVKun编程网logo

鼠标位置Python Tkinter(鼠标位置python)

10

针对鼠标位置PythonTkinter和鼠标位置python这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展*#【Python】【基础知识】【模块】【tkinter】【学用tkinter画图

针对鼠标位置Python Tkinter鼠标位置python这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展*#【Python】【基础知识】【模块】【tkinter】【学用 tkinter 画图 / 制作窗口】、import _tkinter#如果失败,则可能没有为Tk配置Python、python gui tkinter快速入门教程 | python tkinter tutorial、python gui编程(tkinter)是什么?实例展示Python tkinter教程等相关知识,希望可以帮助到你。

本文目录一览:

鼠标位置Python Tkinter(鼠标位置python)

鼠标位置Python Tkinter(鼠标位置python)

有没有一种方法可以获取鼠标的位置并将其设置为var?

答案1

小编典典

您可以设置一个回调来响应<Motion>事件:

import Tkinter as tkroot = tk.Tk()def motion(event):    x, y = event.x, event.y    print(''{}, {}''.format(x, y))root.bind(''<Motion>'', motion)root.mainloop()

我不确定您想要哪种变量。在上面,我设置了局部变量xy设置了鼠标坐标。

如果创建motion类方法,则可以设置实例属性self.xself.y鼠标坐标,然后可以从其他类方法访问它们。

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

 

import _tkinter#如果失败,则可能没有为Tk配置Python

import _tkinter#如果失败,则可能没有为Tk配置Python

一些初始信息:我的计算机上装有Windows 10,所有程序均为64位版本。

我正在使用tkinter在python(3.6.1)中编写一个游戏,现在我想将其转换为.exe。我使用了cx_freeze(5.0.1)并进行了构建,但是当我尝试打开游戏时,会打开一个窗口,然后立即关闭。因此,我尝试通过cmd打开它,并弹出以下错误:

File "sliks.py", line 1, in <module>File "C:\Users\Tinka\AppData\Local\Programs\Python\Python36\lib\tkinter\__init__.py", line 36, in <module>import _tkinter # If this fails your Python may not be configured for TkImportError: DLL load failed: The specified module could not be found.

我已经检查了tkinter支持,如下所示:https :
//wiki.python.org/moin/TkInter
,没有错误发生。

我也尝试用pip安装tk-dev,正如在此问题的一些答案中所说的那样,但是当我收到此消息时什么也没有发生:

C:\WINDOWS\system32>pip install tk-devCollecting tk-devCould not find a version that satisfies the requirement tk-dev (from versions: )No matching distribution found for tk-dev

我的计算机上从未安装过python 2.x,因此没有混合库,如这种情况:ImportError
DLL加载无法导入_tkinter

这是我用于cx_freeze的setup.py文件,以防出现问题:

from cx_Freeze import setup, Executableimport osos.environ[''TCL_LIBRARY''] = r''C:\Users\Tinka\AppData\Local\Programs\Python\Python36\tcl\tcl8.6''os.environ[''TK_LIBRARY''] = r''C:\Users\Tinka\AppData\Local\Programs\Python\Python36\tcl\tk8.6''base = Nonesetup(    name = "Six",    version = "0.1",    options = {"build_exe": {"packages": ["tkinter"]}},    executables = [Executable("sliks.py", base=base)]    )

任何想法可能是什么问题?我知道在这个问题上有很多悬而未决的问题,但是我尝试了大多数解决方案,但是没有运气。

答案1

小编典典

我不得不非常努力地寻找一个适合自己的解决方案。不知道这是否可以帮助任何人,但对我有用。据我了解,这些错误是在cx_freeze找不到所有依赖项或获取不正确的依赖项时生成的。

我要做的第一件事是深入到python目录。在这里要非常小心,并确保您正在查找正在执行python代码的位置。如果您不知道,IDE可能会为您提供此路径。如果有多个安装或环境,则可能会关闭。

在那里,我确定了引起错误的文件。就我而言,这是一个tkinter依赖项。问题是tcl86.dll和tk86.dll。您可以看到我添加的行。然后我的徽标实际上开始执行此操作,因此我必须添加它。现在效果很好。这是我的setup.py文件(cx_freeze配置)的样本。

from cx_Freeze import setup, Executableimport sysimport osincludes = []include_files = [r"C:\Users\Ace\AppData\Local\Programs\Python\Python36\DLLs\tcl86t.dll",                 r"C:\Users\Ace\AppData\Local\Programs\Python\Python36\DLLs\tk86t.dll",                 r"C:\Users\Ace\Desktop\IPNV\KP_App\FML\logo1.gif"]os.environ[''TCL_LIBRARY''] = r''C:\Users\Ace\AppData\Local\Programs\Python\Python36\tcl\tcl8.6''os.environ[''TK_LIBRARY''] = r''C:\Users\Ace\AppData\Local\Programs\Python\Python36\tcl\tk8.6''base = ''Win32GUI'' if sys.platform == ''win32'' else Nonesetup(name=''KpApp'', version=''0.9'', description=''KP Report App'',      options={"build_exe": {"includes": includes, "include_files": include_files}},      executables=[Executable(r''C:\Users\Ace\Desktop\IPNV\KP_App\FML\firstapp.py'', base=base)])

python gui tkinter快速入门教程 | python tkinter tutorial

python gui tkinter快速入门教程 | python tkinter tutorial

本文首发于个人博客https://kezunlin.me/post/d5c57f56/,欢迎阅读最新内容!

python tkinter tutorial

<!--more-->

Guide

main ui

messagebox
- showinfo()
- showwarning()
- showerror()
- askquestion()
- askokcancel()
- askyesno()
- askretrycancel()
- askyesnocancel()


filedialog
- asksaveasfilename() 
- asksaveasfile()
- askopenfilename()
- askopenfile()
- askdirectory()
- askopenfilenames()
- askopenfiles()

demo


from numpy.random import seed, uniform
from numpy import uint8, uint16, load, save

from cv2 import imread, imwrite
from os import listdir, makedirs
from os.path import exists, basename

# for python 3
from tkinter import Tk, Frame, messagebox, filedialog, Button, Label, StringVar

class MyGUI():
    def __init__(self):

        self.root = Tk()

        sw = self.root.winfo_screenwidth()
        sh = self.root.winfo_screenheight()
       
        ww = 700
        wh = 200
        x = (sw-ww) / 2
        y = (sh-wh) / 2
        self.root.title(''Image Compress Tool'')
        # center
        self.root.geometry("%dx%d+%d+%d" % (ww, wh, x, y))

        # frame1
        frame1 = Frame(self.root) 
        frame1.grid(row=0, column=0, sticky=''w'')

        self.input_btn = Button(frame1, text="Input Folder", width=10, height=3, command=self.set_input_folder)
        self.input_btn.pack(side=''left'')

        self.input_label_text = StringVar()
        self.input_label_text.set("Input Folder")

        self.input_label = Label(frame1, textvariable=self.input_label_text, width=70, height=3)
        self.input_label.pack(side=''left'') 

        # frame2
        frame2 = Frame(self.root) 
        frame2.grid(row=1, column=0, sticky=''w'')
        
        self.output_btn = Button(frame2, text="Output Folder", width=10, height=3, command=self.set_output_folder)
        self.output_btn.pack(side=''left'')

        self.output_label_text = StringVar()
        self.output_label_text.set("Output Folder")

        self.output_label = Label(frame2, textvariable = self.output_label_text, width=70, height=3)
        self.output_label.pack(side=''left'') 

        # frame3
        frame3 = Frame(self.root)
        frame3.grid(row=2, column=0, sticky=''nw'')
        
        self.run_btn = Button(frame3, text="执行加密", width=10, height=3, command=self.run_task)
        self.run_btn.pack(side=''left'')

        self.run_label_text = StringVar()
        self.run_label_text.set("Ready")

        self.run_label = Label(frame3, textvariable = self.run_label_text, width=70, height=3)
        self.run_label.pack(side=''left'') 

    def mainloop(self):
        self.root.mainloop() 

    def set_input_folder(self):
        result = filedialog.askdirectory()
        self.input_label_text.set(result)
        
    def set_output_folder(self):
        result = filedialog.askdirectory()
        self.output_label_text.set(result)
    
    def run_task(self):
        input_folder = self.input_label_text.get()
        output_folder = self.output_label_text.get()
        #print("input_folder: "+input_folder)
        #print("output_folder: "+output_folder)
        if exists(input_folder):
            #batch_compress(input_folder, output_folder)
            self.run_label_text.set("Compress OK.")
            messagebox.showinfo("Info", "Compress OK.")
        else:
            messagebox.showwarning("Warn", "Please input folder")

def gui():
    app = MyGUI()
    app.mainloop()

def main():
    gui()

if __name__ =="__main__":
    main()

snapshots tkinter demo

Reference

  • tkinter demo
  • tkinter docs

History

  • 20190411: created.

Copyright

  • Post author: kezunlin
  • Post link: https://kezunlin.me/post/d5c57f56/
  • Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.

python gui编程(tkinter)是什么?实例展示Python tkinter教程

python gui编程(tkinter)是什么?实例展示Python tkinter教程

之前的文章我们学习了python cgi编程,这篇文章我们就来介绍python gui编程(tkinter)并附上python 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 编程

Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。

立即学习“Python免费学习笔记(深入)”;

由于 Tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。

import tkinter
登录后复制

创建一个GUI程序

1、导入 Tkinter 模块

2、创建控件

3、指定这个控件的 master, 即这个控件属于哪一个

4、告诉 GM(geometry manager) 有一个控件产生了。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import Tkinter
top = Tkinter.Tk()
# 进入消息循环
top.mainloop()
登录后复制

以上代码执行结果如下图:

tkwindow.jpg

以上就是python gui编程(tkinter)是什么?实例展示Python tkinter教程的详细内容,更多请关注php中文网其它相关文章!

关于鼠标位置Python Tkinter鼠标位置python的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于*#【Python】【基础知识】【模块】【tkinter】【学用 tkinter 画图 / 制作窗口】、import _tkinter#如果失败,则可能没有为Tk配置Python、python gui tkinter快速入门教程 | python tkinter tutorial、python gui编程(tkinter)是什么?实例展示Python tkinter教程的相关信息,请在本站寻找。

本文标签: