python-3.x - 如何连接来自两个不同组合框的两个字符串变量并将它们插入文本框中?
问题描述
我创建了两个不同的组合框:组合框A和组合框B当我更改第一个组合框A时,它们都有一些值组合框B的内容发生了变化,我创建了一个文本条目来移动组合框A和组合框B中选择的当前文本,但我有一个问题:我不知道如何组合两个变量字符串。
from tkinter import *
from tkinter import ttk
import time;
#MAIN SCREEN
master = Tk()
master.geometry ('600x400')
master.title('project first step')
#CHANGE CONTENT OF COMBOBOX
def Callmain_list(*args):
sel = main_list.get()
if sel == Main_list[0]:
ListB = Spare_parts_main
elif sel == Main_list[1]:
ListB = Assets_main
elif sel == Main_list[2]:
ListB = Tools_main
comboboxB.config(values=ListB)
Main_list=['قطع غيار','أصول ثابتة','عدد و أدوات']
Spare_parts_main=['سيور','رومان
بلي','هيدروليك','تروس','كتائن','طلمبات','نيوماتيك','انكودرات','مغيرات
سرعة','محركات كهربية','سخانات']
Assets_main=['وحدات لحام','مكابس','ثنايات','مخارط','فرايز','خطوط
تقطيع','مقصات']
Tools_main=['حجر تجليخ','دسك تقطيع','ماكينة برشام']
ListB=()
# FIRST COMBOBOX
main_list = StringVar()
main_list.set('please select')
comboboxA=ttk.Combobox(master,font=("Arial",15)
,textvariable=main_list,values=Main_list,width=20,heigh=20)
comboboxA.bind("<<ComboboxSelected>>",Callmain_list)
comboboxA.grid(row=0, column=0)
# SECOND COMBOBOX
spare_main_list = StringVar()
spare_main_list.set('please select')
comboboxB=ttk.Combobox(master,font=("Arial",15)
,textvariable=spare_main_list,values=ListB,width=20,heigh=20)
comboboxB.grid(row=1, column=0)
collection = StringVar()
a = main_list
b = spare_main_list
collection = {a} + {b}
# ENTRY BOX TO COLLECT THE DISCRIPTION
discription_collect = Entry(master, font=('arial',15, 'bold'),
textvariable=collection, bd=15,
insertwidth=6,
bg='powder blue', justify='right')
discription_collect.insert(0,collection)
discription_collect.grid(row=3, column=0)
mainloop()
解决方案
你必须改变这个:
a = main_list
b = spare_main_list
collection = {a} + {b}
对此:
a = main_list.get()
b = spare_main_list.get()
collection.set(a + " --- " + b)
您的代码的完整版本:
from tkinter import *
from tkinter import ttk
# MAIN SCREEN
master = Tk()
master.geometry('600x400')
master.title('Project First Step')
# CHANGE CONTENT OF COMBOBOX
def Callmain_list(*args):
sel = main_list.get()
if sel == Main_list[0]:
comboboxB.config(values=Spare_parts_main)
elif sel == Main_list[1]:
comboboxB.config(values=Assets_main)
elif sel == Main_list[2]:
comboboxB.config(values=Tools_main)
def AddValue(*args):
a = main_list.get()
b = spare_main_list.get()
collection.set(a + " --- " + b)
Main_list = ['Parts', 'Fixed Assets', 'Number and Tools']
Spare_parts_main = ['Cior', 'Roman Bell', 'Hydraulic', 'Gear', 'Lathes', 'Pumps', 'Pneumatic', 'Encoders', 'Speed Changers', 'Electric Motors', 'Heaters']
Assets_main = ['Welding Units', 'Presses', 'Flanges', 'Lathes', 'Fries', 'Cutters', 'Scissors']
Tools_main = ['Stone Grinding', 'Disc Cutting', 'Riveting Machine']
# FIRST COMBOBOX
main_list = StringVar()
main_list.set('Please Select')
comboboxA = ttk.Combobox(master, font=("Arial", 15), textvariable=main_list, values=Main_list, width=20, heigh=20)
comboboxA.bind("<<ComboboxSelected>>", Callmain_list)
comboboxA.grid(row=0, column=0)
# SECOND COMBOBOX
spare_main_list = StringVar()
spare_main_list.set('Please Select')
comboboxB = ttk.Combobox(master, font=("Arial", 15), textvariable=spare_main_list, values=[], width=20, heigh=20)
comboboxB.bind("<<ComboboxSelected>>", AddValue)
comboboxB.grid(row=1, column=0)
collection = StringVar()
# ENTRY BOX TO COLLECT THE DISCRIPTION
discription_collect = Entry(master, font=('arial', 15, 'bold'), textvariable=collection, bd=15, insertwidth=6, bg='powder blue', justify='right')
discription_collect.insert(0, collection)
discription_collect.grid(row=3, column=0)
mainloop()
推荐阅读
- reactjs - 反应路由器确切属性不起作用
- sql - Hive 查询将结构数组转换为字符串数组
- javascript - 使用 jQuery 修复无效的嵌套列表
- python - 如何使用取决于类变量的自定义损失函数保存和加载 keras 模型?
- image - 列表
无效值:只有有效值是0:1 - node.js - RabbitMQ:有没有办法将消息分派到稍后的时间?
- mysql - MariaDB 中的 utf8 还是 utf8mb3 吗?
- excel - 使用 VBA 删除 .txt 文件中的字符
- python - Python:获取与点具有最小欧几里得距离的CSV文件的行号
- javascript - 在 mocha chai 中测试 MQTT.js 套接字