Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 14, 2014 21:24:33

shalx
Зарегистрирован: 2014-01-14
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

выпадающие списки

как связать эти два списка?
заранее спасибо

from tkinter import *
root = Tk()
root = “white”
root.geometry('400x400')
root.title('кепка')
root.overrideredirect(False)



from tkinter import Tk, StringVar, ttk



def combo(parent):
value = StringVar()
box = ttk.Combobox(parent, textvariable=value, state='readonly')
box = ('A', ‘B’, ‘C’)
box.current(0)
box.grid(column=0, row=0)
box.place(x='10',y='15')

combo(root)

from tkinter import Tk, StringVar, ttk



def combo(parent):
value = StringVar()
box = ttk.Combobox(parent, textvariable=value, state='readonly')
box = ('D', ‘E’, ‘F’)
box.current(0)
box.grid(column=0, row=0)
box.place(x='180',y='15')

combo(root)

root.mainloop()

Офлайн

#2 Янв. 15, 2014 00:21:44

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

выпадающие списки

Я Вам в другом разделе уже написал. Или Вы считаете, что здесь сидят совсем другие программисты.
Объясните. Что значить связать?
Давайте так:
1. Было так.
2. Стало так.

Или.

“У меня вот так. Если я на этом нажимаю это, то получается такое…”.

Нужно более подробно. Сложно понять, а писать десяток возможных вариантов нет ни времени ни желания. Хочу Вам помочь, но не знаю как и каким образом.

P.S. И оберните код в теги. Вам об этом уже написали более опытные товарищи выше. Имейте уважение к тем, кто читает Вашу тему…

Отредактировано 4kpt_II (Янв. 15, 2014 00:22:00)

Офлайн

#3 Янв. 15, 2014 10:52:24

shalx
Зарегистрирован: 2014-01-14
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

выпадающие списки

извините плз . я совсем чайник и на форуме и в паитоне . если сможите ответте пожалуста .
есть форма в ткинтер , на форме 2 бокса со списками , как сделать чтоб когда мы вибираеб в первом боксе из списка “A” во втором сам показивалсия буква “D”, и на оборот. не знаю объяснил ли


from tkinter import *
root = Tk()
root = “white”
root.geometry('400x400')
root.title('кепка')
root.overrideredirect(False)



from tkinter import Tk, StringVar, ttk



def combo(parent):
value = StringVar()
box = ttk.Combobox(parent, textvariable=value, state='readonly')
box = ('A', ‘B’, ‘C’)
box.place(x='10',y='15')

combo(root)

from tkinter import Tk, StringVar, ttk



def combo1(parent):
value = StringVar()
box = ttk.Combobox(parent, textvariable=value, state='readonly')
box = ('D', ‘E’, ‘F’)
box.place(x='180',y='15')

combo1(root)

root.mainloop()

Прикреплённый файлы:
attachment as.py (662 байта)

Офлайн

#4 Янв. 15, 2014 13:16:52

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

выпадающие списки

Теперь понятней.
Держите код.

import Tkinter
import ttk
#
#
def choice(event):
    wdg = event.widget  # С какого виджета пришло событие
    # Получаем виджет соответсвия и назначаем ему соответствующую строку
    accordance_wdg[wdg.winfo_id()].set(accordance_str[wdg.get()])
#
#
root = Tkinter.Tk()
root.geometry("400x400+100+100")
#
val_1 = ('A', 'B', 'C')
box_1 = ttk.Combobox(root, state='readonly', values=val_1)
box_1.place(relx=0.25, rely=0.5, anchor="center")
box_1.bind("<<ComboboxSelected>>", choice)
#
val_2 = ('D', 'E', 'F')
box_2 = ttk.Combobox(root, state='readonly', values=val_2)
box_2.place(relx=0.75, rely=0.5, anchor="center")
box_2.bind("<<ComboboxSelected>>", choice)
#
# Описываем соотвествие
accordance_str = {"A": "D", "B": "E", "C": "F", "D": "A", "E": "B", "F": "C"}
accordance_wdg = {box_1.winfo_id(): box_2, box_2.winfo_id(): box_1}
#
root.mainloop()

В 3.Х по-моему нужно писать не Tkinter, а tkinter и не просто import ttk, а from tkinter import ttk.

Еще одно. Так делать нельзя.

from tkinter import *

Делать нельзя никогда. Почему нельзя - ЧИТАЕМ ТУТ…

Будут вопросы - пишите.

Отредактировано 4kpt_II (Янв. 15, 2014 13:19:22)

Офлайн

#5 Янв. 15, 2014 17:35:31

shalx
Зарегистрирован: 2014-01-14
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

выпадающие списки

огромное спасибо вам 4kpt_II , вы точно гуру .
чуть изменил код потому что у меня версия 333 и всо получилось .


import tkinter
from tkinter import Tk, StringVar, ttk
def choice(event):
    wdg = event.widget  # С какого виджета пришло событие
    # Получаем виджет соответсвия и назначаем ему соответствующую строку
    accordance_wdg[wdg.winfo_id()].set(accordance_str[wdg.get()])
root = tkinter.Tk()

Офлайн

#6 Янв. 15, 2014 17:38:02

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

выпадающие списки

Да какой там гуру. Подождите.
Вторая строка неверна!!!

Нужно

from tkinter import ttk

Вы же используете явное указание на класс, поэтому так правильнее…

Офлайн

#7 Янв. 15, 2014 19:30:34

shalx
Зарегистрирован: 2014-01-14
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

выпадающие списки

но ана работает , на wing тестировал , тока stringvar не нужен

Офлайн

#8 Янв. 15, 2014 19:38:47

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

выпадающие списки

Вы повторно импортируете. Это не нужно. Это как написать.

import tkinter
from tkinter import ttk
import tkinter

К тому же Вы явно ссылаетесь на модуль в строке

root = Tkinter.Tk()

Поэтому в объявлении

from tkinter import ttk, Tk

Tk вообще дальше по коду не используется.

P.S. Если планируете дальше заниматься питоном, то вам надо что-то почитать. Вопросы слишком простые.

P.S.S. Первый вопрос был интересным… Дальше - нет.

Отредактировано 4kpt_II (Янв. 15, 2014 19:39:55)

Офлайн

#9 Янв. 15, 2014 19:49:44

shalx
Зарегистрирован: 2014-01-14
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

выпадающие списки

хочу очень , посоветуйте пожалуйста русскую литературу и с чего надо начать

Офлайн

#10 Янв. 15, 2014 19:56:22

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

выпадающие списки

Кидайте скайп в личку.
Накидаю литературы без проблем.

Отредактировано 4kpt_II (Янв. 15, 2014 20:06:25)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version