Форум сайта python.su
AZJIO
Кстати а нет ли случайно инструмента для автоматического приведения кода к корректному виду?
pip install autopep8 autopep8 myfile.py autopep8 --aggressive --in-place myfile.py
Отредактировано Alen (Сен. 13, 2014 13:10:36)
Офлайн
4kpt_II
В чем работаете?в Geany. Поставил на неделе PyCharm, так как видел целую тему в Инструментах, но пока не удаётся с ним работать. Не связываются файлы с ним (pycharm.sh), долго запускается, не работает Ctrl+A, Ctrl+C, Ctrl+V. В причинах пока не разбирался.
Офлайн
Долго запускается это нормально Остальное странно
Офлайн
AZJIOутилиту автоматической смены раскладки отключи попробуй
не работает Ctrl+A, Ctrl+C, Ctrl+V
Офлайн
vrabey
У меня нет такой. Попробовал сделать английский дефолтным, первым,… заработало.
Офлайн
AZJIO
Yura_LemeshkoТак что ли? Так то у вас всё есть в скрипте, манипулируйте. А задачу лучше сразу оговаривать, чтобы по 100 раз не переписывать.
Офлайн
AZJIO
Yura_LemeshkoТак что ли? Так то у вас всё есть в скрипте, манипулируйте. А задачу лучше сразу оговаривать, чтобы по 100 раз не переписывать.
# -*- coding: UTF-8 -*- from tkinter import * import tkinter.filedialog as fdialog from tkinter import messagebox from tkinter.messagebox import * root = Tk() root.geometry('800x550') root.title('Окно оформления') root.resizable(width = False, height = False) ##### ##### Первый ряд ##### label_300 = Label(root, text = u"Загальний вид робiт:") label_300.place(x = 70, y = 260 ) ####### edit2 = Entry(root) # надо было тут edit ставить def box_1(): global list1 def read_file_to_lbox(): try: f = open('lbox.txt', 'r') # Открывает файл для чтения except: # Генерируем пункты для примера (вариант 2) list1=["Генеририруем","Тестовый","Если","не найден","файл","lbox.txt"] # Массив данных для вставки в Listbox for i in list1: # Цикл вставки в Listbox lbox1.insert(END,i) return # Вылет, если не удалось открыть файл list1 = f.read() # Читает файл f.close() # Закрыть дескриптор файла list1 = list1.split('\n') # делит строку указаным разделителем, возвращая список for i in list1: # Цикл вставки в Listbox lbox1.insert(END,i) # —————————————————————————————————————— # Функция связанная с кнопкой сохранения def save_lbox_to_q_file(): list_1=lbox1.get(0, END) # Получить все пункты списка string = '' for i in list_1: # Соединяем в строку string += i + '\n' string = string.rstrip('\n') # справа обрезает все символы, указанные в перечислении # sa = fdialog.asksaveasfilename(filetypes = [("Текстовые файлы", "*.txt")]) # вызов диалога сохранения try: f = open('lbox.txt', 'w') # Открывает файл для чтения # f = open(sa, 'w') # Открыть файл, режим добавления except: # print("Could not open File: ") # print(sys.exc_info()[1]) return # Вылет, если не удалось открыть файл f.write(string) # пишем строку пунктов в файл f.close() # Закрываем файл после записи #root.quit() # —————————————————————————————————————— # Функция связанная с выбором в Listbox def lbox_item_to_q_entry(evt): inx = lbox1.index(ANCHOR) # получаем индекс пункта if inx > lbox1.size() - 1: # Защита от применения действий к пункту без его выбора, список может быть пуст # print ('выберите пункт для начала') return value = lbox1.get(inx) # Получить выделенное edit2.delete(0, END) # очищает поле ввода edit2.insert(0,value) # вставляет текст в поле ввода # —————————————————————————————————————— # Функция вставки def lbox_added_q_item(): text = str(edit1.get()) # Читаем поле ввода if not (text==''): # Проверяем что текст не пустой, перед вставкой lbox1.insert(END,text) # Вставляет в конец списка edit2.delete(0, END) # очищает поле ввода # lbox1.insert(3,'- "' + text + '" - вставлен в поз:3') # Вставляет в позицию 3 else: showwarning('Предупреждение', 'Укажите текст добавляемого пункта') # —————————————————————————————————————— # Функция редактирования def lbox_edit_q_item(): text = str(edit1.get()) # Читаем поле ввода if not (text==''): # Проверяем что текст не пустой, перед вставкой # print (text) # inx = lbox1.get(ACTIVE) # получаем текст пункта inx = lbox1.index(ANCHOR) # получаем индекс пункта if inx > lbox1.size() - 1: # Защита от редактирования пункта без выбора showwarning('Предупреждение', 'Выберите пункт для редактирования') # print ('выберите пункт для начала') return lbox1.delete(inx) # удаляем пункт по индексу lbox1.insert(inx, text) # Вставляет пункт по индексу # lbox1.insert(inx, text + ' (удача ?)') # Для визуального теста edit2.delete(0, END) # очищает поле ввода else: showwarning('Предупреждение', 'Укажите новый текст пункта') # —————————————————————————————————————— # Функция удаления #def lbox_delete_item(): #inx = lbox1.index(ANCHOR) # получаем индекс пункта #if inx > lbox1.size() - 1: # Защита от редактирования пункта без выбора #showwarning('Предупреждение', 'Выберите пункт для удаления') #return #lbox1.delete(inx) # удаляет пункт по индексу # label_1 = Label(root, text = 'Замовник: ') # Создаём лейбл # label_1.place(x = 300, y = 10) # Задаём координаты лейбла lbox1 = Listbox(root, width = 30) # Создаём список (, selectmode=MULTIPLE) (http://effbot.org/tkinterbook/listbox.htm) lbox1.place(x=200, y = 280) # Добавляем в слот grid с отступами read_file_to_lbox() #edit2 = Entry(root, width = 30) # Создаём поле ввода edit2.place(x = 300, y = 250) # Добавляем в слот grid # Связали (забиндили) событие выбора в Listbox с функцией "list_to_entry" lbox1.bind('<<ListboxSelect>>', lbox_item_to_q_entry) # Создаём кнопки и вязываем с функциями button_1 = Button(root, text = '+', command = lbox_added_q_item) button_1.pack() button_1.place(x = 300, y = 440) # Если кнопку делаем в root, то координируем #button_2 = Button(root, text = '-', command = lbox_delete_item) #button_2.pack() #button_2.place(x = 50, y = 250) # Если кнопку делаем в root, то координируем button_3 = Button(root, text = 'Правка', command = lbox_edit_q_item) button_3.pack() button_3.place(x = 390, y = 440) # Если кнопку делаем в root, то координируем button_4 = Button(root, text = 'Сохранить', command = save_lbox_to_q_file) button_4.pack() button_4.place(x =320, y = 440) # Если кнопку делаем в root, то координируем ##### edit2 = Entry(root) def box_2(): global list2 def read_file_to_lbox(): try: f = open('lbox.txt', 'r') # Открывает файл для чтения except: # Генерируем пункты для примера (вариант 2) list2=["Генеририруем","Тестовый","Если","не найден","файл","lbox.txt"] # Массив данных для вставки в Listbox for i in list1: # Цикл вставки в Listbox lbox1.insert(END,i) return # Вылет, если не удалось открыть файл list2 = f.read() # Читает файл f.close() # Закрыть дескриптор файла list2 = list2.split('\n') # делит строку указаным разделителем, возвращая список for i in list2: # Цикл вставки в Listbox lbox1.insert(END,i) # —————————————————————————————————————— # Функция связанная с кнопкой сохранения def save_lbox_to_q_file(): list2=lbox1.get(0, END) # Получить все пункты списка string = '' for i in list2: # Соединяем в строку string += i + '\n' string = string.rstrip('\n') # справа обрезает все символы, указанные в перечислении # sa = fdialog.asksaveasfilename(filetypes = [("Текстовые файлы", "*.txt")]) # вызов диалога сохранения try: f = open('lbox.txt', 'w') # Открывает файл для чтения # f = open(sa, 'w') # Открыть файл, режим добавления except: # print("Could not open File: ") # print(sys.exc_info()[1]) return # Вылет, если не удалось открыть файл f.write(string) # пишем строку пунктов в файл f.close() # Закрываем файл после записи #root.quit() # —————————————————————————————————————— # Функция связанная с выбором в Listbox def lbox_item_to_q_entry(evt): inx = lbox1.index(ANCHOR) # получаем индекс пункта if inx > lbox1.size() - 1: # Защита от применения действий к пункту без его выбора, список может быть пуст # print ('выберите пункт для начала') return value = lbox1.get(inx) # Получить выделенное edit2.delete(0, END) # очищает поле ввода edit2.insert(0,value) # вставляет текст в поле ввода # —————————————————————————————————————— # Функция вставки def lbox_added_q_item(): text = str(edit2.get()) # Читаем поле ввода if not (text==''): # Проверяем что текст не пустой, перед вставкой lbox1.insert(END,text) # Вставляет в конец списка edit2.delete(0, END) # очищает поле ввода # lbox1.insert(3,'- "' + text + '" - вставлен в поз:3') # Вставляет в позицию 3 else: showwarning('Предупреждение', 'Укажите текст добавляемого пункта') # —————————————————————————————————————— # Функция редактирования def lbox_edit_q_item(): text = str(edit2.get()) # Читаем поле ввода if not (text==''): # Проверяем что текст не пустой, перед вставкой # print (text) # inx = lbox1.get(ACTIVE) # получаем текст пункта inx = lbox1.index(ANCHOR) # получаем индекс пункта if inx > lbox1.size() - 1: # Защита от редактирования пункта без выбора showwarning('Предупреждение', 'Выберите пункт для редактирования') # print ('выберите пункт для начала') return lbox1.delete(inx) # удаляем пункт по индексу lbox1.insert(inx, text) # Вставляет пункт по индексу # lbox1.insert(inx, text + ' (удача ?)') # Для визуального теста edit2.delete(0, END) # очищает поле ввода else: showwarning('Предупреждение', 'Укажите новый текст пункта') # —————————————————————————————————————— # Функция удаления #def lbox_delete_item(): #inx = lbox1.index(ANCHOR) # получаем индекс пункта #if inx > lbox1.size() - 1: # Защита от редактирования пункта без выбора #showwarning('Предупреждение', 'Выберите пункт для удаления') #return #lbox1.delete(inx) # удаляет пункт по индексу # label_1 = Label(root, text = 'Замовник: ') # Создаём лейбл # label_1.place(x = 300, y = 10) # Задаём координаты лейбла lbox1 = Listbox(root, width = 30) # Создаём список (, selectmode=MULTIPLE) (http://effbot.org/tkinterbook/listbox.htm) lbox1.place(x=200, y = 280) # Добавляем в слот grid с отступами read_file_to_lbox() #edit2 = Entry(root, width = 30) # Создаём поле ввода edit2.place(x = 300, y = 250) # Добавляем в слот grid # Связали (забиндили) событие выбора в Listbox с функцией "list_to_entry" lbox1.bind('<<ListboxSelect>>', lbox_item_to_q_entry) # Создаём кнопки и вязываем с функциями button_6 = Button(root, text = '+', command = lbox_added_q_item) button_6.pack() button_6.place(x = 300, y = 440) # Если кнопку делаем в root, то координируем #button_2 = Button(root, text = '-', command = lbox_delete_item) #button_2.pack() #button_2.place(x = 50, y = 250) # Если кнопку делаем в root, то координируем button_7 = Button(root, text = 'Правка', command = lbox_edit_q_item) button_7.pack() button_7.place(x = 390, y = 440) # Если кнопку делаем в root, то координируем button_8 = Button(root, text = 'Сохранить', command = save_lbox_to_q_file) button_8.pack() button_8.place(x =320, y = 440) # Если кнопку делаем в root, то координируем ##### edit2 = Entry(root) def box_3(): global list3 def read_file_to_lbox(): try: f = open('lbox.txt', 'r') # Открывает файл для чтения except: # Генерируем пункты для примера (вариант 2) list3=["Генеририруем","Тестовый","Если","не найден","файл","lbox.txt"] # Массив данных для вставки в Listbox for i in list3: # Цикл вставки в Listbox lbox1.insert(END,i) return # Вылет, если не удалось открыть файл list3 = f.read() # Читает файл f.close() # Закрыть дескриптор файла list3 = list3.split('\n') # делит строку указаным разделителем, возвращая список for i in list3: # Цикл вставки в Listbox lbox1.insert(END,i) # —————————————————————————————————————— # Функция связанная с кнопкой сохранения def save_lbox_to_q_file(): list3=lbox1.get(0, END) # Получить все пункты списка string = '' for i in list3: # Соединяем в строку string += i + '\n' string = string.rstrip('\n') # справа обрезает все символы, указанные в перечислении # sa = fdialog.asksaveasfilename(filetypes = [("Текстовые файлы", "*.txt")]) # вызов диалога сохранения try: f = open('lbox.txt', 'w') # Открывает файл для чтения # f = open(sa, 'w') # Открыть файл, режим добавления except: # print("Could not open File: ") # print(sys.exc_info()[1]) return # Вылет, если не удалось открыть файл f.write(string) # пишем строку пунктов в файл f.close() # Закрываем файл после записи #root.quit() # —————————————————————————————————————— # Функция связанная с выбором в Listbox def lbox_item_to_q_entry(evt): inx = lbox1.index(ANCHOR) # получаем индекс пункта if inx > lbox1.size() - 1: # Защита от применения действий к пункту без его выбора, список может быть пуст # print ('выберите пункт для начала') return value = lbox1.get(inx) # Получить выделенное edit2.delete(0, END) # очищает поле ввода edit2.insert(0,value) # вставляет текст в поле ввода # —————————————————————————————————————— # Функция вставки def lbox_added_q_item(): text = str(edit2.get()) # Читаем поле ввода if not (text==''): # Проверяем что текст не пустой, перед вставкой lbox1.insert(END,text) # Вставляет в конец списка edit2.delete(0, END) # очищает поле ввода # lbox1.insert(3,'- "' + text + '" - вставлен в поз:3') # Вставляет в позицию 3 else: showwarning('Предупреждение', 'Укажите текст добавляемого пункта') # —————————————————————————————————————— # Функция редактирования def lbox_edit_q_item(): text = str(edit2.get()) # Читаем поле ввода if not (text==''): # Проверяем что текст не пустой, перед вставкой # print (text) # inx = lbox1.get(ACTIVE) # получаем текст пункта inx = lbox1.index(ANCHOR) # получаем индекс пункта if inx > lbox1.size() - 1: # Защита от редактирования пункта без выбора showwarning('Предупреждение', 'Выберите пункт для редактирования') # print ('выберите пункт для начала') return lbox1.delete(inx) # удаляем пункт по индексу lbox1.insert(inx, text) # Вставляет пункт по индексу # lbox1.insert(inx, text + ' (удача ?)') # Для визуального теста edit2.delete(0, END) # очищает поле ввода else: showwarning('Предупреждение', 'Укажите новый текст пункта') # —————————————————————————————————————— # Функция удаления #def lbox_delete_item(): #inx = lbox1.index(ANCHOR) # получаем индекс пункта #if inx > lbox1.size() - 1: # Защита от редактирования пункта без выбора #showwarning('Предупреждение', 'Выберите пункт для удаления') #return #lbox1.delete(inx) # удаляет пункт по индексу # label_1 = Label(root, text = 'Замовник: ') # Создаём лейбл # label_1.place(x = 300, y = 10) # Задаём координаты лейбла lbox1 = Listbox(root, width = 30) # Создаём список (, selectmode=MULTIPLE) (http://effbot.org/tkinterbook/listbox.htm) lbox1.place(x=200, y = 280) # Добавляем в слот grid с отступами read_file_to_lbox() #edit2 = Entry(root, width = 30) # Создаём поле ввода edit2.place(x = 300, y = 250) # Добавляем в слот grid # Связали (забиндили) событие выбора в Listbox с функцией "list_to_entry" lbox1.bind('<<ListboxSelect>>', lbox_item_to_q_entry) # Создаём кнопки и вязываем с функциями button_6 = Button(root, text = '+', command = lbox_added_q_item) button_6.pack() button_6.place(x = 300, y = 440) # Если кнопку делаем в root, то координируем #button_2 = Button(root, text = '-', command = lbox_delete_item) #button_2.pack() #button_2.place(x = 50, y = 250) # Если кнопку делаем в root, то координируем button_7 = Button(root, text = 'Правка', command = lbox_edit_q_item) button_7.pack() button_7.place(x = 390, y = 440) # Если кнопку делаем в root, то координируем button_8 = Button(root, text = 'Сохранить', command = save_lbox_to_q_file) button_8.pack() button_8.place(x =320, y = 440) # Если кнопку делаем в root, то координируем ##### edit2 = Entry(root) def box_4(): global list_4 def read_file_to_lbox(): try: f = open('lbox.txt', 'r') # Открывает файл для чтения except: # Генерируем пункты для примера (вариант 2) list_4=["Генеририруем","Тестовый","Если","не найден","файл","lbox.txt"] # Массив данных для вставки в Listbox for i in list_4: # Цикл вставки в Listbox lbox1.insert(END,i) return # Вылет, если не удалось открыть файл list_4 = f.read() # Читает файл f.close() # Закрыть дескриптор файла list_4 = list_4.split('\n') # делит строку указаным разделителем, возвращая список for i in list_4: # Цикл вставки в Listbox lbox1.insert(END,i) # —————————————————————————————————————— # Функция связанная с кнопкой сохранения def save_lbox_to_q_file(): list_4=lbox1.get(0, END) # Получить все пункты списка string = '' for i in list1: # Соединяем в строку string += i + '\n' string = string.rstrip('\n') # справа обрезает все символы, указанные в перечислении # sa = fdialog.asksaveasfilename(filetypes = [("Текстовые файлы", "*.txt")]) # вызов диалога сохранения try: f = open('lbox.txt', 'w') # Открывает файл для чтения # f = open(sa, 'w') # Открыть файл, режим добавления except: # print("Could not open File: ") # print(sys.exc_info()[1]) return # Вылет, если не удалось открыть файл f.write(string) # пишем строку пунктов в файл f.close() # Закрываем файл после записи #root.quit() # —————————————————————————————————————— # Функция связанная с выбором в Listbox def lbox_item_to_q_entry(evt): inx = lbox1.index(ANCHOR) # получаем индекс пункта if inx > lbox1.size() - 1: # Защита от применения действий к пункту без его выбора, список может быть пуст # print ('выберите пункт для начала') return value = lbox1.get(inx) # Получить выделенное edit2.delete(0, END) # очищает поле ввода edit2.insert(0,value) # вставляет текст в поле ввода # —————————————————————————————————————— # Функция вставки def lbox_added_q_item(): text = str(edit2.get()) # Читаем поле ввода if not (text==''): # Проверяем что текст не пустой, перед вставкой lbox1.insert(END,text) # Вставляет в конец списка edit2.delete(0, END) # очищает поле ввода # lbox1.insert(3,'- "' + text + '" - вставлен в поз:3') # Вставляет в позицию 3 else: showwarning('Предупреждение', 'Укажите текст добавляемого пункта') # —————————————————————————————————————— # Функция редактирования def lbox_edit_q_item(): text = str(edit2.get()) # Читаем поле ввода if not (text==''): # Проверяем что текст не пустой, перед вставкой # print (text) # inx = lbox1.get(ACTIVE) # получаем текст пункта inx = lbox1.index(ANCHOR) # получаем индекс пункта if inx > lbox1.size() - 1: # Защита от редактирования пункта без выбора showwarning('Предупреждение', 'Выберите пункт для редактирования') # print ('выберите пункт для начала') return lbox1.delete(inx) # удаляем пункт по индексу lbox1.insert(inx, text) # Вставляет пункт по индексу # lbox1.insert(inx, text + ' (удача ?)') # Для визуального теста edit1.delete(0, END) # очищает поле ввода else: showwarning('Предупреждение', 'Укажите новый текст пункта') # —————————————————————————————————————— # Функция удаления #def lbox_delete_item(): #inx = lbox1.index(ANCHOR) # получаем индекс пункта #if inx > lbox1.size() - 1: # Защита от редактирования пункта без выбора #showwarning('Предупреждение', 'Выберите пункт для удаления') #return #lbox1.delete(inx) # удаляет пункт по индексу # label_1 = Label(root, text = 'Замовник: ') # Создаём лейбл # label_1.place(x = 300, y = 10) # Задаём координаты лейбла lbox1 = Listbox(root, width = 30) # Создаём список (, selectmode=MULTIPLE) (http://effbot.org/tkinterbook/listbox.htm) lbox1.place(x=200, y = 280) # Добавляем в слот grid с отступами read_file_to_lbox() #edit2 = Entry(root, width = 30) # Создаём поле ввода edit2.place(x = 300, y = 250) # Добавляем в слот grid # Связали (забиндили) событие выбора в Listbox с функцией "list_to_entry" lbox1.bind('<<ListboxSelect>>', lbox_item_to_q_entry) # Создаём кнопки и вязываем с функциями button_6 = Button(root, text = '+', command = lbox_added_q_item) button_6.pack() button_6.place(x = 300, y = 440) # Если кнопку делаем в root, то координируем #button_2 = Button(root, text = '-', command = lbox_delete_item) #button_2.pack() #button_2.place(x = 50, y = 250) # Если кнопку делаем в root, то координируем button_7 = Button(root, text = 'Правка', command = lbox_edit_q_item) button_7.pack() button_7.place(x = 390, y = 440) # Если кнопку делаем в root, то координируем button_8 = Button(root, text = 'Сохранить', command = save_lbox_to_q_file) button_8.pack() button_8.place(x =320, y = 440) # Если кнопку делаем в root, то координируем ##### global varVR varVR = IntVar() frame_1 = Frame(root, bg = 'red', bd = 2) rb1 = Radiobutton(frame_1, text = u'КВР', command = box_1,variable=varVR,value=1) rb1.pack() frame_1.place(x = 50, y = 280 ) ##### frame_1 = Frame(root, bg = 'red', bd = 2) rb2 = Radiobutton(frame_1, text = u'Монтаж, п/н', command = box_2,variable=varVR,value=2) rb2.pack() frame_1.place(x = 50, y = 305 ) ##### frame_1 = Frame(root, bg = 'red', bd = 2) rb3 = Radiobutton(frame_1, text = u'Проектнi роботи', command = box_3,variable=varVR,value=3) rb3.pack() frame_1.place(x = 50, y = 330 ) ##### frame_1 = Frame(root, bg = 'red', bd = 2) rb4 = Radiobutton(frame_1, text = u'Огляди, ЕО, атестацiя', command = box_4,variable=varVR,value=4) rb4.pack() frame_1.place(x = 50, y = 355 ) #####--------------------- Второй ряд--------------- ##### # —————————————————————————————————————— # Функция чтения файла в Listbox def read_file_to_lbox(): try: f = open('lbox.txt', 'r') # Открывает файл для чтения except: # Генерируем пункты для примера (вариант 2) list1=["Генеририруем","Тестовый","Если","не найден","файл","lbox.txt"] # Массив данных для вставки в Listbox for i in list1: # Цикл вставки в Listbox lbox1.insert(END,i) return # Вылет, если не удалось открыть файл list1 = f.read() # Читает файл f.close() # Закрыть дескриптор файла list1 = list1.split('\n') # делит строку указаным разделителем, возвращая список for i in list1: # Цикл вставки в Listbox lbox1.insert(END,i) # —————————————————————————————————————— # Функция связанная с кнопкой сохранения def save_lbox_to_file(): list1=lbox1.get(0, END) # Получить все пункты списка string = '' for i in list1: # Соединяем в строку string += i + '\n' string = string.rstrip('\n') # справа обрезает все символы, указанные в перечислении # sa = fdialog.asksaveasfilename(filetypes = [("Текстовые файлы", "*.txt")]) # вызов диалога сохранения try: f = open('lbox.txt', 'w') # Открывает файл для чтения # f = open(sa, 'w') # Открыть файл, режим добавления except: # print("Could not open File: ") # print(sys.exc_info()[1]) return # Вылет, если не удалось открыть файл f.write(string) # пишем строку пунктов в файл f.close() # Закрываем файл после записи #root.quit() # —————————————————————————————————————— # Функция связанная с выбором в Listbox def lbox_item_to_entry(evt): inx = lbox1.index(ANCHOR) # получаем индекс пункта if inx > lbox1.size() - 1: # Защита от применения действий к пункту без его выбора, список может быть пуст # print ('выберите пункт для начала') return value = lbox1.get(inx) # Получить выделенное edit1.delete(0, END) # очищает поле ввода edit1.insert(0,value) # вставляет текст в поле ввода # —————————————————————————————————————— # Функция вставки def lbox_added_item(): text = str(edit2.get()) # Читаем поле ввода if not (text==''): # Проверяем что текст не пустой, перед вставкой lbox1.insert(END,text) # Вставляет в конец списка edit1.delete(0, END) # очищает поле ввода # lbox1.insert(3,'- "' + text + '" - вставлен в поз:3') # Вставляет в позицию 3 else: showwarning('Предупреждение', 'Укажите текст добавляемого пункта') # —————————————————————————————————————— # Функция редактирования def lbox_edit_item(): text = str(edit2.get()) # Читаем поле ввода if not (text==''): # Проверяем что текст не пустой, перед вставкой # print (text) # inx = lbox1.get(ACTIVE) # получаем текст пункта inx = lbox1.index(ANCHOR) # получаем индекс пункта if inx > lbox1.size() - 1: # Защита от редактирования пункта без выбора showwarning('Предупреждение', 'Выберите пункт для редактирования') # print ('выберите пункт для начала') return lbox1.delete(inx) # удаляем пункт по индексу lbox1.insert(inx, text) # Вставляет пункт по индексу # lbox1.insert(inx, text + ' (удача ?)') # Для визуального теста edit1.delete(0, END) # очищает поле ввода else: showwarning('Предупреждение', 'Укажите новый текст пункта') # —————————————————————————————————————— # Функция удаления #def lbox_delete_item(): #inx = lbox1.index(ANCHOR) # получаем индекс пункта #if inx > lbox1.size() - 1: # Защита от редактирования пункта без выбора #showwarning('Предупреждение', 'Выберите пункт для удаления') #return #lbox1.delete(inx) # удаляет пункт по индексу label_1 = Label(root, text = 'Замовник: ') # Создаём лейбл label_1.place(x = 300, y = 10) # Задаём координаты лейбла lbox1 = Listbox(root, width = 30) # Создаём список (, selectmode=MULTIPLE) (http://effbot.org/tkinterbook/listbox.htm) lbox1.grid(padx=300, pady = 30) # Добавляем в слот grid с отступами read_file_to_lbox() edit1 = Entry(root, width = 30) # Создаём поле ввода edit1.grid() # Добавляем в слот grid # Связали (забиндили) событие выбора в Listbox с функцией "list_to_entry" lbox1.bind('<<ListboxSelect>>', lbox_item_to_entry) # Создаём кнопки и вязываем с функциями button_1 = Button(root, text = '+', command = lbox_added_item) button_1.pack() button_1.place(x = 300, y = 195) # Если кнопку делаем в root, то координируем #button_2 = Button(root, text = '-', command = lbox_delete_item) #button_2.pack() #button_2.place(x = 50, y = 250) # Если кнопку делаем в root, то координируем button_3 = Button(root, text = 'Правка', command = lbox_edit_item) button_3.pack() button_3.place(x = 390, y = 195) # Если кнопку делаем в root, то координируем button_5 = Button(root, text = 'Сохранить', command = save_lbox_to_file) button_5.pack() button_5.place(x =320, y = 195) # Если кнопку делаем в root, то координируем #------------------------------------------SAVE_AS_START------------------------------------------------------------------------ def save_as(): if askyesno("Save As?", "Зберегти введенне?"): #Объявление переменных zamownik = ' Замовник ' + str(edit1.get()) zag_rob = ' Вид виконаних робiт ' + str(edit2.get()) if (varVR.get() == 1): wid_rabot = ' Загальний вид робiт: ' + rb1['text'] elif (varVR.get() == 2): wid_rabot = ' Загальний вид робiт: ' + rb2['text'] elif (varVR.get() == 3): wid_rabot = ' Загальний вид робiт: ' + rb3['text'] elif (varVR.get() == 4): wid_rabot = ' Загальний вид робiт: ' + rb4['text'] ############### print ('\n', zamownik, '\n', zag_rob, '\n', wid_rabot, '\n', '-------------------------------------------------------------') list_1 = ['\n', zamownik, '\n', zag_rob, '\n', wid_rabot, '\n'] sa = fdialog.asksaveasfilename(filetypes = [('all files', '.*'), ('xls files', '.xls'),('doc files', '.doc')]) # собственно, само сохранение f = open(sa, 'a') for i in list_1: f.write(i) f.close() # Список фиг запишешь в фаил, # пришлось циклично записывать по строкам #----------------------------------------------------SAVE_AS_END-------------------------------------------------------------------------------------------- frame_1 = Frame(root, bg = 'red', bd = 2) button_0 = Button(frame_1, text = u'Зберегти', command = save_as) button_0.pack() frame_1.place(x = 400, y = 500 ) root.mainloop()
Отредактировано Yura_Lemeshko (Сен. 17, 2014 12:00:03)
Офлайн
AZJIO уже в бане.
По-вашему вопросу. Разделите Вашу программу на отдельные задачи. Для каждой задачи напишите свой модуль. Там же и разместите все виджеты. И выкладывайте конкретно тот модуль, где появились проблемы. Просто это огромный код. Его никто читать в таком количестве не будет.
Офлайн
4kpt_II
AZJIO уже в бане.По-вашему вопросу. Разделите Вашу программу на отдельные задачи. Для каждой задачи напишите свой модуль. Там же и разместите все виджеты. И выкладывайте конкретно тот модуль, где появились проблемы. Просто это огромный код. Его никто читать в таком количестве не будет.
# -*- coding: UTF-8 -*- from tkinter import * import tkinter.filedialog as fdialog from tkinter import messagebox from tkinter.messagebox import * root = Tk() root.geometry('800x550') root.title('Окно оформления') root.resizable(width = False, height = False) ##### ##### Первый ряд ##### label_300 = Label(root, text = u"Загальний вид робiт:") label_300.place(x = 70, y = 260 ) ####### edit2 = Entry(root) # надо было тут edit ставить def box_1(): global list1 def read_file_to_lbox(): try: f = open('lbox.txt', 'r') # Открывает файл для чтения except: # Генерируем пункты для примера (вариант 2) list1=["Генеририруем","Тестовый","Если","не найден","файл","lbox.txt"] # Массив данных для вставки в Listbox for i in list1: # Цикл вставки в Listbox lbox1.insert(END,i) return # Вылет, если не удалось открыть файл list1 = f.read() # Читает файл f.close() # Закрыть дескриптор файла list1 = list1.split('\n') # делит строку указаным разделителем, возвращая список for i in list1: # Цикл вставки в Listbox lbox1.insert(END,i) # —————————————————————————————————————— # Функция связанная с кнопкой сохранения def save_lbox_to_q_file(): list_1=lbox1.get(0, END) # Получить все пункты списка string = '' for i in list_1: # Соединяем в строку string += i + '\n' string = string.rstrip('\n') # справа обрезает все символы, указанные в перечислении # sa = fdialog.asksaveasfilename(filetypes = [("Текстовые файлы", "*.txt")]) # вызов диалога сохранения try: f = open('lbox.txt', 'w') # Открывает файл для чтения # f = open(sa, 'w') # Открыть файл, режим добавления except: # print("Could not open File: ") # print(sys.exc_info()[1]) return # Вылет, если не удалось открыть файл f.write(string) # пишем строку пунктов в файл f.close() # Закрываем файл после записи #root.quit() # —————————————————————————————————————— # Функция связанная с выбором в Listbox def lbox_item_to_q_entry(evt): inx = lbox1.index(ANCHOR) # получаем индекс пункта if inx > lbox1.size() - 1: # Защита от применения действий к пункту без его выбора, список может быть пуст # print ('выберите пункт для начала') return value = lbox1.get(inx) # Получить выделенное edit2.delete(0, END) # очищает поле ввода edit2.insert(0,value) # вставляет текст в поле ввода # —————————————————————————————————————— # Функция вставки def lbox_added_q_item(): text = str(edit2.get()) # Читаем поле ввода if not (text==''): # Проверяем что текст не пустой, перед вставкой lbox1.insert(END,text) # Вставляет в конец списка edit2.delete(0, END) # очищает поле ввода # lbox1.insert(3,'- "' + text + '" - вставлен в поз:3') # Вставляет в позицию 3 else: showwarning('Предупреждение', 'Укажите текст добавляемого пункта') # —————————————————————————————————————— # Функция редактирования def lbox_edit_q_item(): text = str(edit2.get()) # Читаем поле ввода if not (text==''): # Проверяем что текст не пустой, перед вставкой # print (text) # inx = lbox1.get(ACTIVE) # получаем текст пункта inx = lbox1.index(ANCHOR) # получаем индекс пункта if inx > lbox1.size() - 1: # Защита от редактирования пункта без выбора showwarning('Предупреждение', 'Выберите пункт для редактирования') # print ('выберите пункт для начала') return lbox1.delete(inx) # удаляем пункт по индексу lbox1.insert(inx, text) # Вставляет пункт по индексу # lbox1.insert(inx, text + ' (удача ?)') # Для визуального теста edit2.delete(0, END) # очищает поле ввода else: showwarning('Предупреждение', 'Укажите новый текст пункта') # —————————————————————————————————————— # Функция удаления def lbox_delete_item(): inx = lbox1.index(ANCHOR) # получаем индекс пункта if inx > lbox1.size() - 1: # Защита от редактирования пункта без выбора showwarning('Предупреждение', 'Выберите пункт для удаления') return lbox1.delete(inx) # удаляет пункт по индексу # label_1 = Label(root, text = 'Замовник: ') # Создаём лейбл # label_1.place(x = 300, y = 10) # Задаём координаты лейбла lbox1 = Listbox(root, width = 30) # Создаём список (, selectmode=MULTIPLE) (http://effbot.org/tkinterbook/listbox.htm) lbox1.place(x=200, y = 280) # Добавляем в слот grid с отступами read_file_to_lbox() #edit2 = Entry(root, width = 30) # Создаём поле ввода edit2.place(x = 300, y = 250) # Добавляем в слот grid # Связали (забиндили) событие выбора в Listbox с функцией "list_to_entry" lbox1.bind('<<ListboxSelect>>', lbox_item_to_q_entry) # Создаём кнопки и вязываем с функциями button_1 = Button(root, text = '+', command = lbox_added_q_item) button_1.pack() button_1.place(x = 300, y = 440) # Если кнопку делаем в root, то координируем button_2 = Button(root, text = '-', command = lbox_delete_item) button_2.pack() button_2.place(x = 50, y = 250) # Если кнопку делаем в root, то координируем button_3 = Button(root, text = 'Правка', command = lbox_edit_q_item) button_3.pack() button_3.place(x = 390, y = 440) # Если кнопку делаем в root, то координируем button_4 = Button(root, text = 'Сохранить', command = save_lbox_to_q_file) button_4.pack() button_4.place(x =320, y = 440) # Если кнопку делаем в root, то координируем ##### ##### global varVR varVR = IntVar() frame_1 = Frame(root, bg = 'red', bd = 2) rb1 = Radiobutton(frame_1, text = u'КВР', command = box_1,variable=varVR,value=1) rb1.pack() frame_1.place(x = 50, y = 280 ) ##### # ————————————————————————— ЗАМОВНИК ————————————————————————— # Функция чтения файла в Listbox def read_file_to_lbox(): try: f = open('lbox.txt', 'r') # Открывает файл для чтения except: # Генерируем пункты для примера (вариант 2) list1=["Генеририруем","Тестовый","Если","не найден","файл","lbox.txt"] # Массив данных для вставки в Listbox for i in list1: # Цикл вставки в Listbox lbox1.insert(END,i) return # Вылет, если не удалось открыть файл list1 = f.read() # Читает файл f.close() # Закрыть дескриптор файла list1 = list1.split('\n') # делит строку указаным разделителем, возвращая список for i in list1: # Цикл вставки в Listbox lbox1.insert(END,i) # —————————————————————————————————————— # Функция связанная с кнопкой сохранения def save_lbox_to_file(): list1=lbox1.get(0, END) # Получить все пункты списка string = '' for i in list1: # Соединяем в строку string += i + '\n' string = string.rstrip('\n') # справа обрезает все символы, указанные в перечислении # sa = fdialog.asksaveasfilename(filetypes = [("Текстовые файлы", "*.txt")]) # вызов диалога сохранения try: f = open('lbox.txt', 'w') # Открывает файл для чтения # f = open(sa, 'w') # Открыть файл, режим добавления except: # print("Could not open File: ") # print(sys.exc_info()[1]) return # Вылет, если не удалось открыть файл f.write(string) # пишем строку пунктов в файл f.close() # Закрываем файл после записи #root.quit() # —————————————————————————————————————— # Функция связанная с выбором в Listbox def lbox_item_to_entry(evt): inx = lbox1.index(ANCHOR) # получаем индекс пункта if inx > lbox1.size() - 1: # Защита от применения действий к пункту без его выбора, список может быть пуст # print ('выберите пункт для начала') return value = lbox1.get(inx) # Получить выделенное edit1.delete(0, END) # очищает поле ввода edit1.insert(0,value) # вставляет текст в поле ввода # —————————————————————————————————————— # Функция вставки def lbox_added_item(): text = str(edit1.get()) # Читаем поле ввода if not (text==''): # Проверяем что текст не пустой, перед вставкой lbox1.insert(END,text) # Вставляет в конец списка edit1.delete(0, END) # очищает поле ввода # lbox1.insert(3,'- "' + text + '" - вставлен в поз:3') # Вставляет в позицию 3 else: showwarning('Предупреждение', 'Укажите текст добавляемого пункта') # —————————————————————————————————————— # Функция редактирования def lbox_edit_item(): text = str(edit1.get()) # Читаем поле ввода if not (text==''): # Проверяем что текст не пустой, перед вставкой # print (text) # inx = lbox1.get(ACTIVE) # получаем текст пункта inx = lbox1.index(ANCHOR) # получаем индекс пункта if inx > lbox1.size() - 1: # Защита от редактирования пункта без выбора showwarning('Предупреждение', 'Выберите пункт для редактирования') # print ('выберите пункт для начала') return lbox1.delete(inx) # удаляем пункт по индексу lbox1.insert(inx, text) # Вставляет пункт по индексу # lbox1.insert(inx, text + ' (удача ?)') # Для визуального теста edit1.delete(0, END) # очищает поле ввода else: showwarning('Предупреждение', 'Укажите новый текст пункта') # —————————————————————————————————————— # Функция удаления def lbox_delete_item(): inx = lbox1.index(ANCHOR) # получаем индекс пункта if inx > lbox1.size() - 1: # Защита от редактирования пункта без выбора showwarning('Предупреждение', 'Выберите пункт для удаления') return lbox1.delete(inx) # удаляет пункт по индексу label_1 = Label(root, text = 'Замовник: ') # Создаём лейбл label_1.place(x = 300, y = 10) # Задаём координаты лейбла lbox1 = Listbox(root, width = 30) # Создаём список (, selectmode=MULTIPLE) (http://effbot.org/tkinterbook/listbox.htm) lbox1.grid(padx=300, pady = 30) # Добавляем в слот grid с отступами read_file_to_lbox() edit1 = Entry(root, width = 30) # Создаём поле ввода edit1.grid() # Добавляем в слот grid # Связали (забиндили) событие выбора в Listbox с функцией "list_to_entry" lbox1.bind('<<ListboxSelect>>', lbox_item_to_entry) # Создаём кнопки и вязываем с функциями button_1 = Button(root, text = '+', command = lbox_added_item) button_1.pack() button_1.place(x = 300, y = 195) # Если кнопку делаем в root, то координируем button_2 = Button(root, text = '-', command = lbox_delete_item) button_2.pack() button_2.place(x = 50, y = 250) # Если кнопку делаем в root, то координируем button_3 = Button(root, text = 'Правка', command = lbox_edit_item) button_3.pack() button_3.place(x = 390, y = 195) # Если кнопку делаем в root, то координируем button_5 = Button(root, text = 'Сохранить', command = save_lbox_to_file) button_5.pack() button_5.place(x =320, y = 195) # Если кнопку делаем в root, то координируем #------------------------------------------SAVE_AS_START------------------------------------------------------------------------ def save_as(): if askyesno("Save As?", "Зберегти введенне?"): #Объявление переменных zamownik = ' Замовник ' + str(edit1.get()) zag_rob = ' Вид виконаних робiт ' + str(edit2.get()) if (varVR.get() == 1): wid_rabot = ' Загальний вид робiт: ' + rb1['text'] elif (varVR.get() == 2): wid_rabot = ' Загальний вид робiт: ' + rb2['text'] elif (varVR.get() == 3): wid_rabot = ' Загальний вид робiт: ' + rb3['text'] elif (varVR.get() == 4): wid_rabot = ' Загальний вид робiт: ' + rb4['text'] ############### print ('\n', zamownik, '\n', zag_rob, '\n', wid_rabot, '\n', '-------------------------------------------------------------') list_1 = ['\n', zamownik, '\n', zag_rob, '\n', wid_rabot, '\n'] sa = fdialog.asksaveasfilename(filetypes = [('all files', '.*'), ('xls files', '.xls'),('doc files', '.doc')]) # собственно, само сохранение f = open(sa, 'a') for i in list_1: f.write(i) f.close() # Список фиг запишешь в фаил, # пришлось циклично записывать по строкам #----------------------------------------------------SAVE_AS_END-------------------------------------------------------------------------------------------- frame_1 = Frame(root, bg = 'red', bd = 2) button_0 = Button(frame_1, text = u'Зберегти', command = save_as) button_0.pack() frame_1.place(x = 400, y = 500 ) root.mainloop()
Отредактировано Yura_Lemeshko (Сен. 17, 2014 14:25:09)
Офлайн
Ну и что мне с этим делать?
Вы можете нормально поставить задачу и я Вам подробно расскажу как ее решить.
P.S. Бан, потому, как не зная сам вообще ничего он пытался учить. Когда учил использовал жуткий говнокод. На форуме устоялось, что говнокод может быть в вопросах, но не в ответах
Отредактировано 4kpt_II (Сен. 17, 2014 15:53:41)
Прикреплённый файлы:
6.jpeg (68,5 KБ)
Офлайн