You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tkinter开发:如何将用户输入变量传递给自定义模块中的函数

解决方法

你当前的代码存在两个核心问题:一是myfunction.py中的函数定义了self参数,但它不属于界面类的方法,没有权限直接访问界面类的属性;二是界面的按钮没有绑定点击回调,触发不了传值逻辑。按以下步骤修改即可:

第一步:修改myfunction.py代码

将函数调整为直接接收外部传入的价格参数,不需要self参数:

def minimum_price(price_min):
    print(f'Minimum price is: {price_min}')

第二步:修改主界面代码

新增按钮点击回调方法,拿到用户输入的价格后传递给myfunction的对应函数:

import tkinter as tk
from tkinter import ttk
import myfunction  # this is my module that has another function

class Interface(ttk.Frame):

    def __init__(self, container):
        super().__init__(container)

        self.user_price_minimum = tk.StringVar()

        minimum_price = ttk.Label(self, text="Minimum price is: ")
        minimum_price.grid(row=0, column=0, padx=5, pady=5)
        minimum_price_entry = ttk.Entry(self, width=15, textvariable = self.user_price_minimum)
        minimum_price_entry.grid(row=0, column=1)
        minimum_price_entry.focus()

        #############
        # 给按钮绑定点击回调函数
        button = ttk.Button(self, text="Use price", command=self.handle_price_submit)

        button.grid(column=0, row=2, columnspan=2, padx=5, pady=5)
    
    # 新增按钮点击处理方法
    def handle_price_submit(self):
        # 简单校验避免非数字输入报错
        try:
            price_min = int(self.user_price_minimum.get())
            # 将价格值作为参数传入myfunction的函数
            myfunction.minimum_price(price_min)
        except ValueError:
            print("请输入有效的数字价格")

root = tk.Tk()
root.geometry("450x250")
root.title("Looking for a flat")
root.columnconfigure(0, weight=1)

frame = Interface(root)
frame.pack()

root.mainloop()

修改完成后,用户点击「Use price」按钮时,就会自动把输入的价格传到myfunction的minimum_price函数中执行后续逻辑。

内容的提问来源于stack exchange,提问作者Tmiskiewicz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 00:12:01