python看图片猜价格游戏,frame 和PhotoImage的使用

import tkinter.messagebox
import tkinter
import random

window = tkinter.Tk()

window.geometry('800x400')

window.title('猜数字游戏')

good_price = random.randint(10, 100)
input_price = random.randint(1, 100)


def sumit():
    global good_price
    if entry.get() == "" or entry.get().isdigit() == False:
        message_info.set("价格不合理")
        tkinter.messagebox.askquestion(title='警告', message='输入不合法')
        if entry.get().isdigit() == False:
            entry.delete(first=0, last=len(entry.get()))
    else:
        quess_price = int(entry.get())
        if 10 <= quess_price <= 100 or entry.get().isspace():
            if quess_price > good_price:
                message_info.set("不好意思,您猜的有点大了!")
                entry.delete(first=0, last=len(entry.get()))
            elif quess_price < good_price:
                message_info.set("不好意思,您猜的有点小了!")
                entry.delete(first=0, last=len(entry.get()))
            else:
                message_info.set("恭喜你,猜对了,祝贺成功!1")
                price.set(f'{good_price}')
                entry.delete(first=0, last=len(entry.get()))
                askok = tkinter.messagebox.askokcancel(title="温馨提示", message="是不继续玩!")
                if askok == True:
                    price.set("***")
                    message_info.set("请输入你猜的价格")
                    good_price = random.randint(10, 100)
                    entry.delete(first=0, last=len(entry.get()))
        else:
            message_info.set("价格不合理,请重新输入")
            tkinter.messagebox.askquestion(title='警告', message='输入不合法,请重新输入')
            entry.delete(first=0, last=len(entry.get()))


# #-------------界面------------------

lable_price_text = tkinter.Label(window, text='当前商品的价格是:', font=('楷体', 15))
lable_price_text.place(x=10, y=10, width=300, height=40)

price = tkinter.StringVar(value='***')

lable_price = tkinter.Label(window, textvariable=price, font=('楷体', 15))
lable_price.place(x=300, y=10, width=80, height=40)

lable_entry_text = tkinter.Label(window, text='请输入10-100的数字:', font=('楷体', 15))
lable_entry_text.place(x=10, y=60, width=300, height=40)

lable_img_text = tkinter.Label(window, text='请看下边的图片:', font=('楷体', 15))
lable_img_text.place(x=10, y=110, width=300, height=40)

entry = tkinter.Entry(window, show="")
entry.place(x=300, y=60, width=80, height=40)

img = tkinter.PhotoImage(file="img.png")

lable_dec_pic = tkinter.Label(window,image=img)
lable_dec_pic.place(x=10, y=160, width=300, height=200)

submit_btn = tkinter.Button(window, text="提交", command=sumit)
submit_btn.place(x=400, y=60, width=80, height=40)

frame = tkinter.Frame(window,bd=2,relief="sunken")
frame.place(x=340, y=170, width=300, height=200)
message_lable = tkinter.Label(window, text='提示:', font=('楷体', 15))
message_lable.place(x=350, y=180, width=100, height=40)
message_info = tkinter.StringVar(value='请输入您猜的价格')

message_m = tkinter.Label(window, textvariable=message_info, font=('楷体', 15))
message_m.place(x=350, y=210, width=280, height=80)

window.mainloop()
  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
为了实现一个图片浏览器,可以使用Python的Tkinter库来创建用户界面,并使用glob库来获取文件夹中的所有图片文件。可以使用PIL库来处理图片,并使用ImageTk库将图片转换为Tkinter可用的格式。 下面是一个简单的示例代码,可以帮助你开始编写一个图片浏览器: ```python import tkinter as tk from PIL import Image, ImageTk import glob class ImageBrowser(tk.Frame): def __init__(self, master=None): super().__init__(master) self.master = master self.pack() self.images = [] self.current_index = 0 self.create_widgets() self.load_images() def create_widgets(self): self.image_label = tk.Label(self) self.image_label.pack() self.prev_button = tk.Button(self, text="Previous", command=self.show_previous_image) self.prev_button.pack(side="left") self.next_button = tk.Button(self, text="Next", command=self.show_next_image) self.next_button.pack(side="right") def load_images(self): image_files = glob.glob("path/to/image/folder/*.jpg") # 替换为你的图片文件夹路径和文件类型 for file in image_files: image = Image.open(file) self.images.append(image) self.show_image() def show_image(self): image = self.images[self.current_index] image = image.resize((400, 400)) # 可以调整图片大小 photo = ImageTk.PhotoImage(image) self.image_label.configure(image=photo) self.image_label.image = photo def show_previous_image(self): self.current_index = (self.current_index - 1) % len(self.images) self.show_image() def show_next_image(self): self.current_index = (self.current_index + 1) % len(self.images) self.show_image() root = tk.Tk() app = ImageBrowser(master=root) app.mainloop() ``` 这段代码创建了一个名为`ImageBrowser`的类,继承自`tkinter`的`Frame`类。在`__init__`方法中,初始化了界面和变量,并调用`load_images`方法加载图片。 `create_widgets`方法创建了界面上的控件,包括一个`Label`用于显示图片,和两个`Button`用于切换上一张和下一张图片。 `load_images`方法使用`glob`库获取指定文件夹中的所有图片文件,并使用`PIL`库打开并保存在`self.images`列表中。 `show_image`方法根据当前索引显示对应的图片,并使用`configure`方法将图片设置为`Label`的内容。 `show_previous_image`和`show_next_image`方法分别用于显示上一张和下一张图片,并通过更新索引调用`show_image`方法来刷新界面。 最后,创建一个`Tk`实例并实例化`ImageBrowser`类,通过调用`mainloop`方法进入主循环,使程序开始运行。 你可以根据需要修改代码中的路径和其他细节来适应你的需求。希望这个例子对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青龙摄影

你的鼓励是我创作的动力,支持下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值