给定的代码不起作用,因为它给出了'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
目前,我正在使用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) 我正在尝试创建一个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) 例如,如果我定义了tkinter.Button带有参数(width=10, height=1)(以字符为单位)的小部件,然后想以像素为单位来检索它的大小,该怎么做?
编辑:我尝试了widget.winfo_height()和widget.geometry(),但是所有这些函数都返回以字符数定义的高度。我认为有可能在一个框架中创建相同的小部件,然后编写frame.winfo_height()该小部件,该小部件将返回以像素为单位的大小,但这并不是那么优雅的解决方案。
我写了一堆产生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) 我正在尝试编写一个简单的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) 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) 修改变量值时如何处理?
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_stuff时var被修改.
我正在尝试使用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) 我是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 ×10
tkinter ×10
python-3.5 ×2
pixels ×1
python-3.x ×1
size ×1
tk-toolkit ×1
typeerror ×1