python - 程序没有返回值
问题描述
我有以下代码:
import time
import warnings
import numpy as np
import pandas as pd
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from tkinter import *
from tkinter import ttk
from tkinter import messagebox
import external
import excelwork
window = Tk()
window.title('My Sample Solution')
window.geometry('700x500')
window.configure(background = 'green')
rows = 0
while rows < 50:
window.rowconfigure(rows, weight = 1)
window.columnconfigure(rows, weight = 1)
rows += 1
found = ['']
#Label Input:
Label(window, text='Search For: ').grid(column = 0, row = 0)
#Dropdown select search
def DisplayDevNum():
search_for = Srch.get()
found = excelwork.srch_knums(int(search_for))
#This is where you choose what to do with the information
return found
def DisplayDevAdd():
search_for = Srch.get()
found = excelwork.srch_add(str(search_for))
#This is where you choose what to do with the information
return found
def DisplayDevCty():
search_for = Srch.get()
found = excelwork.srch_cty(str(search_for))
#This is where you choose what to do with the information
return found
def DisplayDevStt():
search_for = Srch.get()
found = excelwork.srch_stt(str(search_for))
#This is where you choose what to do with the information
return found
def DisplayStrNum():
search_for = Srch.get()
found = excelwork.srch_snums(int(search_for))
#This is where you choose what to do with the information
return found
def DisplayStrName():
search_for = Srch.get()
found = excelwork.srch_stnm(str(search_for))
#This is where you choose what to do with the information
return found
def chng_srch():
srch_choices.get()
if srch_choices == options[0]:
DisplayDevNum()
return found()
if srch_choices == options[1]:
DisplayDevAdd()
return found()
if srch_choices == options[2]:
DisplayDevCty()
return found()
if srch_choices == options[3]:
DisplayDevStt()
return found()
if srch_choices == options[4]:
DisplayStrNum()
return found()
if srch_choices == options[5]:
DisplayStrName()
return found()
options = ['Device Number','Device Address','Device City','Device State','Store Number','Store Name']
srch_choices = ttk.Combobox(window, values = options)
srch_choices.grid(row = 0, column = 1)
#Input Entry
Srch = Entry(window)
Srch.grid(column = 2, row = 0)
display_tabs = ttk.Notebook(window)
display_tabs.grid(row = 3, column = 0, columnspan = 50, rowspan = 47, sticky = 'NESW')
tab1 = ttk.Frame(display_tabs)
display_tabs.add(tab1, text = 'Info')
Label(tab1, text = 'Kiosk ID: ').grid(column = 0, row = 0)
Label(tab1, text = found[0]).grid(column = 1, row = 0)
#Go Button
Button(window, text = 'Go', command = chng_srch).grid(column = 3, row = 0)
window.mainloop()
我正在尝试将我的函数的值打印为搜索结果。但是,我没有从我的回报中得到任何输出。我的 excelwork 导入是个人编写的文件,并且有效。我已经对其进行了测试,它在直接运行时返回了预期的值。也就是说,我不完全确定我哪里出错了。有人可以帮忙吗?
解决方案
您当前的代码有几个单独的问题。
首先,简单地更改found
变量不会更新Label
. 您可以改为创建一个 TkinterStringVar
来保存您要显示的文本,这将导致Label
在它发生更改时进行更新。有关此示例,请参阅Label
文档的模式部分。
第二个问题是,当你运行DisplayDevNum
函数时,你需要保存输出——运行函数本身实际上并没有做任何事情。所以而不是做
if srch_choices == options[0]:
DisplayDevNum()
return found()
你需要做这样的事情:
if srch_choices == options[0]:
return DisplayDevNum()
但是,简单地返回一个值chng_srch
不会更新found
标签内容。要更改变量(found
假设found
现在StringVar
由Label
_ )。另一种选择是将 保留为变量,并让函数显式更新内容。found
Label
chng_srch
Label
推荐阅读
- c# - C# 无法循环遍历控件集合并在 Windows 窗体中的用户控件上设置属性
- vue.js - 如何从组件中获取数据
- python - Matplotlib.pyplot - 对数图上的多个图第三个图不会显示
- python - Python多处理:不使用单独的内存空间?
- java - JEP 323 java-11 中的@Notnull 在哪里
- flutter - 迁移到 AndroidX 后构建失败并出现最新依赖项
- vector - 有没有办法转换 ChunkMut
从 Vec::chunks_mut 到切片 &mut [T]? - javascript - 不适用于 Vue js 和 Laravel 5.7 的“CORS”
- c++ - 将双精度插入 char* 数组元素
- c++ - 通过重用模板模板参数创建类型