Форум сайта python.su
Здравствуйте
Код::
# -*- coding: cp1251 -*-
from Tkinter import *
top = Tk()
dir(top)
F = Frame(top)
F.pack()
# Підпис поля вводу
lHello = Label(F, text="Input")
lHello.pack()
lHello.pack(side="left")
#Поле вводу
fEntry = Frame(F, border=1)
eHello = Entry(fEntry)
fEntry.pack(side="left", expand="true")
eHello.pack(side="left", expand="true")
# Кнопка виходу з програми
bQuit = Button(F, text="Exit", command=F.quit)
bQuit.pack()
Офлайн
eHello.get() читаешь
для кнопок - пишешь ф-цию и command = ф-ция при вызове
как у тебя command=F.quit
Офлайн
slav0nic
Я не умею писать функции - то Я с сайта скопировал и пытиаюсь подстроить под свои нужды :-(
Офлайн
может тогда книжки почиатешь перед изучением gui, хотя бы азы?)
Офлайн
slav0nic
Так Я и читаю - купил “Освой самостоятельно Питон за 24 часа” Иван ван Лейнингема - но у меня такое впечатление, что он для другой версии Питона написан - половина примеров не работает, в гуе по крайней мере :-( Пример где их текстового поля выдается значение и выводится на экран сыплет ошибками - хотя Я четко все перепечатал :-(
Кстати - умею Я писать функции как выяснилось - просто в моем понимании они назывались подпрограммами :-)
Я пишу вот так:
eHello.get()
print eHello
Офлайн
ну ты ёпт…
на
from Tkinter import *
#ф-ция, которая вызывается при нажатии на Read
def read_entry():
print eHello.get()
top = Tk()
dir(top)
F = Frame(top)
F.pack()
# Підпис поля вводу
lHello = Label(F, text=“Input”)
lHello.pack()
lHello.pack(side=“left”)
#Поле вводу
fEntry = Frame(F, border=1)
eHello = Entry(fEntry)
fEntry.pack(side=“left”, expand=“true”)
eHello.pack(side=“left”, expand=“true”)
#кнопка чтения
bRead = Button(F, text=“Read”, command=read_entry)
bRead.pack()
# Кнопка виходу з програми
bQuit = Button(F, text=“Exit”, command=F.quit)
bQuit.pack()
top.mainloop()
а Python за 24 часа, неплохая книга для начала, довольно простая, там всё есть и примеры есть, а начинать с ГУИ не уменя писать ф-ция мммм
Офлайн
# -*- coding: cp1251 -*-
# Програма отримує дані з наступних файлів
# Oneselfcostdecrease.dat - зниження собівартості від впровадження інновації на одиницю
# Oneprofitincrease.dat - приріст прибутку від впровадження інновації на одиницю
# Onequantitydecrease.dat - умовне зменшення кількості працюючих від впровадження інновації на одиницю
# Onematerialdecrease.dat - економія матеріальних ресурсів від впровадження інновації на одиницю
# Oneexpenditure.dat - витрати на одиницю впровадження інновації
# В кінці файлу даних повинна бути порожня строка
# Відкриваємо базу даних для читання
Oneselfcostdecrease = file("Oneselfcostdecrease.dat","r")
Oneprofitincrease = file("Oneprofitincrease.dat","r")
Onequantitydecrease = file("Onequantitydecrease.dat","r")
Onematerialdecrease = file("Onematerialdecrease.dat","r")
Oneexpenditure = file("Oneexpenditure.dat","r")
# Ініціалізуємо лічильник для обмеження кількості ітерацій
[b]n = "string"[/b]
# Ініціалізуємо лічильник помилок
Error = 0
# Ініціалізуємо лічильник кількості оброблених інновацій
Total = 0
from Tkinter import *
#ф-ция, которая вызывается при нажатии на Read
def read_entry():
Quantity = eHello.get()
# Перевірка на кінець файлу
[b] while n<>"":[/b]
# Зчитуємо значення та перевіряємо співпадіння назв інновацій
Name = Oneselfcostdecrease.readline()
one = Oneselfcostdecrease.readline()
if Oneprofitincrease.readline()<> Name:
print "Помілка! Не співпадають назви інновації у Oneprofitincrease.dat"
Error = Error+1
two = Oneprofitincrease.readline()
if Onequantitydecrease.readline()<> Name:
print "Помілка! Не співпадають назви інновації у Onequantitydecrease.dat"
Error = Error+1
three = Onequantitydecrease.readline()
if Onematerialdecrease.readline()<> Name:
print "Помілка! Не співпадають назви інновації у Onematerialdecrease.dat"
Error = Error+1
four = Onematerialdecrease.readline()
if Oneexpenditure.readline()<> Name:
print "Помілка! Не співпадають назви інновації у Oneexpenditure.dat"
Error = Error+1
five = Oneexpenditure.readline()
# Задаємо значення лічильнику для перевірки на кінець файлу
n = five
# Перевірка на кінець файлу
if n <> "":
# Задаємо значення лічильнику кількості оброблених інновацій
Total = Total+1
#Позбавляємось символу кінця строки
one = one.strip()
two = two.strip()
three = three.strip()
four = four.strip()
five = five.strip()
#Конвертуємо значення у числову форму
one = float(one)
two = float(two)
three = float(three)
four = float(four)
five = float(five)
#Обчислюємо та виводимо на екран необхідні значення
print Name
print "Сумарне зниження собівартості........... ", one*Quantity,"грн."
print "Сумарний приріст прибутку............... ", two*Quantity,"грн."
print "Зменшення чисельності працівників....... ", three*Quantity,"чол."
print "Економія ресурсів....................... ", four*Quantity,"кг."
Nfinance = five*Quantity
print "Потрібне фінансування................... ", Nfinance,"грн."
Eefect = two*Quantity-five*Quantity
print "Загальний економічний ефект............. ", Eefect,"грн."
print "Ефективність інвестування............... ", Eefect/Nfinance
print "_______________________________________________________"
# Повідомляємо користувача про помилки
if Error<>0:
print "Увага! Під час роботи програми зафіксовано", Error, "помилок."
print "Результати можуть бути невірними."
# Повідомляємо користувача про кількість оброблених інновацій
print "Оброблено інновацій:", Total
print "Обсяг впровадження :", Quantity
# Закриваємо базу даних
Oneselfcostdecrease.close()
Oneprofitincrease.close()
Onequantitydecrease.close()
Onematerialdecrease.close()
Oneexpenditure.close()
top = Tk()
dir(top)
F = Frame(top)
F.pack()
# Підпис поля вводу
lHello = Label(F, text="Input")
lHello.pack()
lHello.pack(side="left")
#Поле вводу
fEntry = Frame(F, border=1)
eHello = Entry(fEntry)
fEntry.pack(side="left", expand="true")
eHello.pack(side="left", expand="true")
#кнопка чтения
bRead = Button(F, text="Read", command=read_entry)
bRead.pack()
top.mainloop()
Офлайн
и как питон будет сравнивать то чего нет?
Офлайн
# Ініціалізуємо лічильник для обмеження кількості ітерацій
n = “string”
Как это нет - а вот это? Причем в консольном варианте все работает….. И до функции оно есть, а в функции пропадает :-(
Офлайн
2 GloomDemon, перед while n<>“”: добавь строку global n. Поидее должно помочь.
Офлайн