标签: tkinter

如何在gui中使用tkinter显示图像

给定的代码不起作用,因为它给出了'haridwar.jpg'找不到文件的错误,尽管我尝试将它放在Python35和桌面上.请帮忙

import tkinter as tk  
from PIL import Image,ImageTk  
root = tk.Tk()  
root.title("display image")  
im=Image.open("haridwar.jpg")  
photo=ImageTk.PhotoImage(im)  
cv = tk.Canvas()  
cv.pack(side='top', fill='both', expand='yes')  
cv.create_image(10, 10, image=photo, anchor='nw')  
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

python tkinter python-imaging-library tkinter-canvas python-3.5

0
推荐指数
1
解决办法
1万
查看次数

如何制作拖放界面?

目前,我正在使用tkinter模块进行Python 3.5 GUI开发。我希望能够将图像从应用程序中的一个位置拖到另一个位置。tkinter是否支持在应用程序内拖放,如果支持,您如何做?

在Tkinter中拖放问题问有关在应用程序之间拖放的问题,这不是我在这里要问的。

from tkinter import *

root = Tk()
root.geometry("640x480")

canvas = Canvas(root, height=480, width=640, bg="white")

frame = Frame(root, height=480, width=640, bg="white")
frame.propagate(0)

image = PhotoImage(file="C:/Users/Shivam/Pictures/Paint/Body.png")

label = Label(canvas, image=image)
label.pack()

label_2 = Label(frame, text="Drop Here !")
label_2.pack()
label_2.place(x=200, y=225, anchor=CENTER)

canvas.pack(side=LEFT)
frame.pack()

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

python drag-and-drop tkinter python-3.5

0
推荐指数
1
解决办法
2万
查看次数

为tkinter`Entry`创建`class`

我正在尝试创建一个class通用Entry实例.

我使用self.statuslist来改变它的值(自动更新的一部分).

但是,一些非常奇怪的事情发生了,我找不到它的起源:

创建一个名为的函数status,以便更改每个Entry值.当该函数的名称更改为任何其他 - 我收到此错误消息:

Traceback (most recent call last):    ####updated for entire traceback ####
File "schedualer.py", line 271, in <module>
sched_entries.get_stat[r-1][c].set(sch_file[r][c])
TypeError: 'method' object is not subscriptable
Run Code Online (Sandbox Code Playgroud)

任何想法为什么?

这是类代码.

class sched_entry (object):
  def __init__(self,master,r1,c1,offr,offc,bg1=["yellow"]):
    self.status=[]
    for r in range(r1):
        newrow=[]
        for c in range(c1):
            v=StringVar()
            z=Entry(master,relief=SUNKEN,width=cell_width,bg=bg1,textvariable=v,justify='center')
            z.grid(row=r+offr, column=c+offc)
            newrow.append(v)
        self.status.append(newrow)
  def status():           ###### when change to stat():   ---> I get the error
    return self.status
Run Code Online (Sandbox Code Playgroud)

我在调用时得到错误:

for r in …
Run Code Online (Sandbox Code Playgroud)

python tkinter

0
推荐指数
1
解决办法
138
查看次数

获取tkinter小部件大小(以像素为单位)

例如,如果我定义了tkinter.Button带有参数(width=10, height=1)(以字符为单位)的小部件,然后想以像素为单位来检索它的大小,该怎么做?

编辑:我尝试了widget.winfo_height()widget.geometry(),但是所有这些函数都返回以字符数定义的高度。我认为有可能在一个框架中创建相同的小部件,然后编写frame.winfo_height()该小部件,该小部件将返回以像素为单位的大小,但这并不是那么优雅的解决方案。

python size tkinter pixels

0
推荐指数
1
解决办法
2072
查看次数

额外的Tkinter GUI弹出窗口

我写了一堆产生GUI的代码.现在每当我运行代码时,它都会生成主GUI窗口和一个没有任何内容的小窗口.当我关闭较小的窗口时,大的主窗口消失.现在我一直在阅读其他类似问题的帖子,但我无法确定代码中的错误位置.

请帮忙 :)

跟进问题:如何添加背景图像而不是灰色无聊颜色?

这是它的样子. 在此输入图像描述

#%% GUI Interface

import Tkinter as tk
from tkFont import Font
from PIL import ImageTk, Image
from Tkinter import END

#This creates the main window of an application
window = tk.Toplevel()
window.title("Sat Track")
window.geometry("1200x800")
window.configure(background='#f0f0f0')

#Imports the pictures.
pic1 = "Globeview.png"
pic2 = "MercatorView.png"
pic3 = "currentweathercroppedsmall.png"
pic4 = "GECurrentcroppedsmall.png"

#Creates a Tkinter-compatible photo image, which can be used everywhere Tkinter expects an image object.
img1 = ImageTk.PhotoImage(Image.open(pic1))
img2 = ImageTk.PhotoImage(Image.open(pic2))
img3 = ImageTk.PhotoImage(Image.open(pic3))
img4 …
Run Code Online (Sandbox Code Playgroud)

python user-interface tkinter

0
推荐指数
1
解决办法
551
查看次数

在'function'和'int'的实例之间不支持TypeError:'>'

我正在尝试编写一个简单的coinflip类型游戏,当我运行它时,我得到错误:

if ticket > 50:
TypeError: '>' not supported between instances of 'function' and 'int'
Run Code Online (Sandbox Code Playgroud)

我真的不明白我做错了什么.对我来说似乎一切都很好,但是当我运行它时,它给了我这个我早先写的错误.任何帮助都非常感谢.这是我的代码:

def flip():
    if player_ticket > 50:
        if ticket > 50:
            result = Label(mainFrame, text="YOU WON!!!", fg="green")
            result.grid(row=3, columnspan=2)
        else:
            result = Label(mainFrame, text="YOU LOST!!!", fg="red")
            result.grid(row=3, columnspan=2)    

    else:
        if player_ticket < 50:
            if ticket < 50:
                result = Label(mainFrame, text="YOU WON!!!", fg="green")
                result.grid(row=3, columnspan=2)
            else:
                result = Label(mainFrame, text="YOU LOST!!!", fg="red")
                result.grid(row=3, columnspan=2)    

def ticket_heads():
    global player_ticket
    player_ticket = decimal.Decimal(random.randrange(0, 50))    

def ticket_tails():
    global …
Run Code Online (Sandbox Code Playgroud)

python tkinter typeerror

0
推荐指数
1
解决办法
5792
查看次数

tkinter.TclError: couldn't recognize data in image file

I'm currently in the middle of a recorded Python lecture and I think the version of python the teacher is using is outdated and he is writing a tkinter program but after copying it I keep getting this error:

Traceback (most recent call last):
  File "C:\Users\1234\AppData\Local\Programs\Python\Python36-32\Lecture Class 11.py", line 35, in <module>
    photo = PhotoImage(file="Me With My 5th Place.jpg")
  File "C:\Users\1234\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 3539, in __init__
    Image.__init__(self, 'photo', name, cnf, master, **kw)
  File "C:\Users\1234\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 3495, in __init__
    self.tk.call(('image', 'create', imgtype, …
Run Code Online (Sandbox Code Playgroud)

python tkinter

0
推荐指数
2
解决办法
3444
查看次数

修改变量值时如何处理?

修改变量值时如何处理?

try:                        # In order to be able to import tkinter for
    import tkinter as tk    # either in python 2 or in python 3
except ImportError:
    import Tkinter as tk


def do_stuff():
    demo['text'] = var


if __name__ == '__main__':
    root = tk.Tk()
    var = "Value"
    demo = tk.Label(root, text=var)
    demo.pack()
    var = "New Value" # call do_stuff()
    tk.mainloop()
Run Code Online (Sandbox Code Playgroud)

对于例如,我要打电话do_stuffvar被修改.

python tkinter

0
推荐指数
1
解决办法
130
查看次数

在Python 3中使用tkinter在simpledialog.askstring中添加默认值

我正在尝试使用tkinter创建一个简单的文本框。以下是我尝试使用的代码。

import tkinter as tk
from tkinter import simpledialog

root = tk.Tk() # Create an instance of tkinter

start_date = simpledialog.askstring(title = "Test Title",
                                    prompt = "Entire Start Date in MM/DD/YYYY format:")
Run Code Online (Sandbox Code Playgroud)

以下是我得到的预期输出。

在此处输入图片说明

我的问题是,如何默认在空插槽中填充默认值,如下所示?

在此处输入图片说明

在R中,我可以使用以下命令轻松完成此操作。

start_date <- winDialogString("Entire Start Date in MM/DD/YYYY format:", "01/31/2018")
Run Code Online (Sandbox Code Playgroud)

python tk-toolkit tkinter python-3.x

0
推荐指数
1
解决办法
2377
查看次数

Tkinter将窗口小部件放置在相对于窗口调整大小的特定位置

我是tkinter和python的新手,我只想在特定位置的画布(带有背景图像)上放置“文本输入”小部件和“按钮”小部件,并使整个布局相对于窗口的大小。这是因为我会将gui设置为在不同的显示器上全屏显示,例如从宽屏到4:3的宽高比。但是我希望我的按钮和小部件保持其相对位置,此图说明了什么我的意思是:-https : //i.imgur.com/IMBuwkQ.png

不幸的是,我在使用pack和grid选项给我这个相对于Windows /屏幕尺寸的精确位置方面没有任何运气。是否有代码可以运行以返回我想要的位置,所以我可以在grid /打包以放置我的小部件?

因此,我开发了一些简单的python3代码来尝试完成此操作并具有以下功能:-(为方便起见,图像参考是在线的,因此该代码应立即运行,而不会在您选择的IDE中产生任何障碍)

from tkinter import*
from PIL import ImageTk, Image
import io
from io import BytesIO
import base64
import webbrowser
import urllib.request  # not urllib.request
from PIL import Image, ImageTk



root = Tk()

root.geometry("1600x700+0+0")




url = "https://i.imgur.com/VqBbqpH.png"  #use "direct link" from imgur, not  "image link"

u = urllib.request.urlopen(url)
raw_data = u.read()
u.close()

im = Image.open(BytesIO(raw_data))
image = ImageTk.PhotoImage(im)

entryDefaultText="Enter Text"




class App(Frame):
    def __init__(self, master):
        Frame.__init__(self, master)
        self.button = Button(master, text="Edit Box Details(click here)", …
Run Code Online (Sandbox Code Playgroud)

python user-interface tkinter

0
推荐指数
1
解决办法
1154
查看次数