Прокофьева О. Е. / Python / 3 Python Glade пример
.doc3 Python Glade пример. Калькулятор # 21
Автор: Вячеслав http://pythonblogg.blogspot.com/2011/03/python-glade-21.html
Отправить по электронной почтеНаписать об этом в блогеОпубликовать в TwitterОпубликовать в FacebookПоделиться в Pinterest
С помощью Glade и вашего редактора. Можно запрограммировать так, он вычислял : Чтобы математические функции , возводил в степень, извлекал корни любой степени ...
Для начала создам проект Glade , заполняем его элементами (кнопки, поля).
Теперь переходим к исходному коду вашего проекта:
Будет использоваться огромное количество функций и команд,
Проекты начинаются одинаково.
Все тонкости уже были использованы в доступном посте .
Вот исходный код Python-файла:
#! / usr / bin / env python
# - * - кодирование: utf-8 - * -
import sys
try :
import pygtk
pygtk.require ( "2.0" )
за исключением :
pass
try :
import gtk
import gtk.glade
кроме :
print ( "GTK Not Available" )
sys.exit ( 1 )
# такой импорт делать обязательно
import math
класс серебро ():
wTree = Нет
b = Нет
def __init__ ( self ): self .wTree = gtk.glade.XML ( "m.glade" )
dic = { "exit" : self .quit , "add_in_hide (1)" : self .add1 , "add_in_hide (2)" : self .add2 , "add_in_hide (3)" : self .add3 , "add_in_hide (4)" : self .add4 , "add_in_hide (5)" : self .add5 , "add_in_hide (6)" : self .add6 , "add_in_hide (7)" : self .add7 , "add_in_hide (8)": self
.add8 , "add_in_hide (9)" : self .add9 , "add_in_hide (0)" : self .add0 , "add_in_hide (+)" : self .add_pl , "add_in_hide (-)" : self .add_min , "add_in_hide ( *) " : self .add_um , " add_in_hide (/) " : self .add_de , " add_in_hide (() " : self .add_s1 , " add_in_hide ()) " : self .add_s2 , " result ": self
.result , "clear" : self .clear , "m_sim" : self .m_sim , "sqrt" : self .sqrt , "x ^ y" : self .pow , "," : self .z , "t" : self .t , "sin" : self .sin , "cos" : self .cos , "pow_v" : self .pow_v , "otm_d1" :self .otm_d1 ,
«sq» : self .sq , «otm_d2» : self .otm_d2 , «sin_v» : self .sin_v , «otm_d3» : self .otm_d3 , «cos_v» : self .cos_v , «otm_d4» : self .otm_d4 , «root» " : self .root , " root_v " : self .root_v , " otm_d5 " : self .otm_d5 , #" destroy ": self.quit, }
сам.wTree.signal_autoconnect ( dic )
gtk.main ()
self .all = self .wTree.get_widget ( "entry3" ) . get_text ()
all = ' '
def root ( self , widget ): #root = a ** (1 / n) self .wTree.get_widget ( "dialog5" ) . шоу(
)
def root_v ( self , widget ):
self .all = self .wTree.get_widget ( "entry3" ) . get_text ()
p1 = self .wTree.get_widget ( "entry7" ) . get_text ()
p2 = self .wTree.get_widget ( "entry8" ) . get_text ()
p3 = 1 / float ( p2 )
self .all = str ( self .all ) + 'math.pow (' + p1 + ',' + str ( p3 ) + ')'
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
self .all = b = self .wTree.get_widget ( "entry3" ) . get_text ()
def sin ( self , widget ):
self .wTree.get_widget ( "dialog3" ) . шоу()
def sin_v ( self , widget ):
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
p1 = self .wTree.get_widget ( "entry5" ) . get_text ()
p1 = str ( p1 ),
если p1 == ' ' :
p1 == '0'
self .all = str ( self .all ) + 'math.sin (' + p1 + ')'
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
self .wTree.get_widget ( "entry5" ) . set_text ( ' ' )
self .wTree.get_widget ( "dialog3" ) . скрывать()
def cos ( self , widget ):
self .wTree.get_widget ( "dialog4" ) . шоу()
def cos_v ( self , widget ):
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
p1 = self .wTree.get_widget ( "entry6" ) . get_text ()
p1 = str ( p1 ),
если p1 == ' ' :
p1 == '0'
self .all = str ( self .all ) + 'math.cos (' + p1 + ')'
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
self .wTree.get_widget ( "entry6" ) . set_text ( ' ' )
self .wTree.get_widget ( "dialog3" ) . скрывать()
def t ( self , widget ):
self .all = self .wTree.get_widget ( "entry3" ) . get_text ()
self .all = str ( self .all ) + ','
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
self .all = b = self .wTree.get_widget ( "entry3" ) . get_text ()
def z ( self , widget ):
self .all = self .wTree.get_widget ( "entry3" ) . get_text ()
self .all = str ( self .all ) + '.'
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
self .all = b = self .wTree.get_widget ( "entry3" ) . get_text ()
def pow ( self , widget ):
# $ #####
self .wTree.get_widget ( "dialog1" ) . шоу()
# $ #####
def pow_v ( self , widget ):
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
p1 = self .wTree.get_widget ( "entry1" ) . get_text ()
p2 = self .wTree.get_widget ( "entry2" ) . get_text ()
p1 = str ( p1 ),
если p1 == ' ' :
p1 == '0',
если p2 == ' ' :
p2 == '0'
self .all = str ( self .all ) + 'math.pow (' + p1 + ',' + p2 + ')'
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
self .wTree.get_widget ( "entry1" ) . set_text ( ' ' )
self .wTree.get_widget ( "entry2" ) . set_text ( ' ' )
self .wTree.get_widget ( "dialog1", скрывать()
def otm_d1 ( self , widget ):
self .wTree.get_widget ( "dialog1" ) . скрывать()
def otm_d2 ( self , widget ):
self .wTree.get_widget ( "dialog2" ) . скрывать()
def otm_d3 ( self , widget ):
self .wTree.get_widget ( "dialog3" ) . скрывать()
def otm_d4 ( self , widget ):
self .wTree.get_widget ( "dialog4" ) . скрывать()
def otm_d5 ( self , widget ):
self .wTree.get_widget ( "dialog5" ) . скрывать()
def sqrt ( self , widget ):
self .wTree.get_widget ( "dialog2" ) . шоу()
def add1 ( self , widget ):
self .all = self .wTree.get_widget ( "entry3" ) . get_text ()
self .all = self .wTree.get_widget ( "entry3" ) . get_text ()
self .all = str ( self .all ) + '1'
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
def add2 ( self , widget ):
self .all = self .wTree.get_widget ( "entry3" ) . get_text ()
self .all = str ( self .all ) + '2'
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
self .all = b = self .wTree.get_widget ( "entry3" ) . get_text ()
def sq ( self , widget ):
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
p3 = self .wTree.get_widget ( "entry4" ) . get_text ()
p3 = str ( p3 ),
если p3 == ' ' :
p3 == '0'
self .all = str ( self .all ) + 'math.sqrt (' + p3 + ')'
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
self .wTree.get_widget ( "entry4" ) . set_text ( ' ' )
self .wTree.get_widget ( "dialog2" ) . скрывать()
def add3 ( self , widget ):
self .all = self .wTree.get_widget ( "entry3" ) . get_text ()
self .all = str ( self .all ) + '3'
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
self .all = b = self .wTree.get_widget ( "entry3" ) . get_text ()
def add4 ( self , widget ):
self .all = self .wTree.get_widget ( "entry3" ) . get_text ()
self .all = str ( self .all ) + '4'
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
self .all = b = self .wTree.get_widget ( "entry3" ) . get_text ()
def add5 ( self , widget ):
self .all = self .wTree.get_widget ( "entry3" ) . get_text ()
self .all = str ( self .all ) + '5'
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
self .all = b = self .wTree.get_widget ( "entry3" ) . get_text ()
def add6 ( self , widget ):
self .all = self .wTree.get_widget ( "entry3" ) . get_text ()
self .all = str ( self .all ) + '6'
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
self .all = b = self .wTree.get_widget ( "entry3" ) . get_text ()
def add7 ( self , widget ):
self .all = self .wTree.get_widget ( "entry3" ) . get_text ()
self .all = str ( self .all ) + '7'
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
self .all = b = self .wTree.get_widget ( "entry3" ) . get_text ()
def add8 ( self , widget ):
self .all = self .wTree.get_widget ( "entry3" ) . get_text ()
self .all = str ( self .all ) + '8'
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
self .all = b = self .wTree.get_widget ( "entry3" ) . get_text ()
def add9 ( self , widget ):
self .all = self .wTree.get_widget ( "entry3" ) . get_text ()
self .all = str ( self .all ) + '9'
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
self .all = b = self .wTree.get_widget ( "entry3" ) . get_text ()
def add0 ( self , widget ):
self .all = self .wTree.get_widget ( "entry3" ) . get_text ()
self .all = str ( self .all ) + '0'
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
self .all = b = self .wTree.get_widget ( "entry3" ) . get_text ()
def add_pl ( self , widget ):
self .all = self .wTree.get_widget ( "entry3" ) . get_text ()
self .all = str ( self .all ) + '+'
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
self .all = b = self .wTree.get_widget ( "entry3" ) . get_text ()
def add_min ( self , widget ):
self .all = self .wTree.get_widget ( "entry3" ) . get_text ()
self .all = str ( self .all ) + '-'
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
self .all = b = self .wTree.get_widget ( "entry3" ) . get_text ()
def add_um ( self , widget ):
self .all = str ( self .all ) + '*'
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
self .all = b = self .wTree.get_widget ( "entry3" ) . get_text ()
def add_de ( self , widget ):
self .all = self .wTree.get_widget ( "entry3" ) . get_text ()
self .all = str ( self .all ) + '/'
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
self .all = b = self .wTree.get_widget ( "entry3" ) . get_text ()
def m_sim ( self , widget ):
self .all = self .wTree.get_widget ( "entry3" ) . get_text ()
self .all = str ( self .all ) [ : - 1 ]
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
self .all = b = self .wTree.get_widget ( "entry3" ) . get_text ()
def clear ( self , widget ):
self .all = ' '
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
self .all = b = self .wTree.get_widget ( "entry3" ) . get_text ()
def add_s1 ( self , widget ):
self .all = self .wTree.get_widget ( "entry3" ) . get_text ()
self .all = str ( self .all ) + '('
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
self .all = b = self .wTree.get_widget ( "entry3" ) . get_text ()
def add_s2 ( self , widget ):
self .all = self .wTree.get_widget ( "entry3" ) . get_text ()
self .all = str ( self .all ) + ')'
self .wTree.get_widget ( "entry3" ) . set_text ( self .all )
self .all = b = self .wTree.get_widget ( "entry3" ) . get_text ()
def результат ( self , виджет ):
try :
# self.all = str (self.all)
self .all = b = self .wTree.get_widget ( "entry3" ) . get_text ()
self .all = eval ( self .all )
self .wTree.get_widget ( "entry3" ) . set_text ( str ( self .all ) )
кроме :
self .wTree.get_widget ( "hbox1" ) . шоу()
self .wTree.get_widget ( "entry3" ) . set_text ( "ОШИБКА" )
def quit ( self , widget ):
sys.exit ( 0 )
letdothis = silver ()
Если вы внимательно изучите "орфографию". Нельзя забывать в проекте Glade кнопкам задавать события.
Также вы можете скачать этот проект полностью архивом:
Скачать
Теги: Оконные приложения , Примеры , Glade , GTK , PyGtk ,Python
6 комментариев:
asakasinsky8 июля 2011 г., 22:57
А что интерфейс через задницу-то сделан?
Ответить
Вячеслав13 июля 2011 г., 13:34
Я начинающий питонер =) Сделал как умел: D
Ответить
Анонимный25 июля 2011 г., 13:48
подскажите, вот скачал Ваш архив, распаковал, а что дальше. Я вызываю питона через идле, правильно? Я тоже в убунте
Ответить
Анонимный10 августа 2011 г., 07:21
cd / path_to_script chmod + x script_name.py ./script_name.py
Ответить