Как соединить две строковые переменные из двух разных выпадающих списков и вставить их в текстовое поле? - PullRequest
0 голосов
/ 17 февраля 2019

я создаю два разных комбинированных списка: comboboxA и comboboxB. У всех них есть некоторые значения, когда я изменяю первый комбинированный ящикA, содержимое комбинированного списка изменилось, я создаю текстовую запись, чтобы переместить текущий текст, выбранный в comboboxA и comboboxB вместе, но у меня естьпроблема: я не знаю, как объединить две переменные строки.

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()

1 Ответ

0 голосов
/ 18 февраля 2019

Вы должны изменить это:

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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...