python编写代码求圆的面积,python计算圆的周长和面积代码

  python编写代码求圆的面积,python计算圆的周长和面积代码

  # https://github。com/RobberPhex/GTK-示例-卡尔卡瑞亚

  从地理信息库导入Gtk,Gdk,怕黑的小海豚/p从太平航运导入图像,务实的秋天/p从超正析象管导入过时的背包/p从数学导入圆周率

  班级模型:

  自我.半径=0

  自我. radius=float(半径)

  回归自我。_半径

  返回pi * self ._半径* 2

  回归自我。_半径** 2 * pi

  返回4 * pi * self ._半径** 3/3

  类别控制器:

  控制视图和模型的更新

  自我模型=模型

  自我。_观察者=[]

  自我. observers.append(观察者)

  model.setRadius(半径)

  self.notify()

  对于自我的观察者来说。_观察员:

  观察者。更新()

  类文本视图:

  处理文本输入框的视图

  :型号型号

  自我模型=模型

  self.rEntry=rEntry

  self.pEntry=pEntry

  self.aEntry=aEntry

  self.vEntry=vEntry

  自我。伦特里。set _ text( % 2.2f % self。模型。getradius())

  自我。彭特里。set _ text( % 2.2f % self。模型。获取周长())

  自我。一次尝试。set _ text( % 2.2f % self。模型。getarea())

  自我。文崔尔。set _ text( % 2.2f % self。模型。获取音量())

  类别比例视图:

  处理拖动条的视图

  :型号型号

  自我模型=模型

  自我尺度=尺度

  自我。规模。set _ value(self。模型。getradius())

  类别图像视图:

  处理图像的视图

  @classmethod

  def imgToPixbuf(cls,img):

  :输入图片图像

  buff=BytesIO()

  img.save(buff, ppm )

  contents=buff.getvalue()

  buff.close()

  返回图片

  @classmethod

  :输入半径整数

  image=Image.new(RGBA ,(300,300),白色)

  draw=ImageDraw .绘制(图像)

  次要=150 -半径

  主要=150半径

  draw.ellipse((minor,minor,major,major),outline=red )

  pix buf=imageview。imgtopixbuf(图像)

  返回图片

  自我模型=模型

  自我形象=形象

  自我。形象。set _ from _ pix buf(pix buf)

  类主窗口(Gtk .窗口):

  负责整体界面的显示

  文本输入pcdby

  尝试:

  controller.setRadius(半径)

  除了值错误为e:

  及格

  拖动条pcdby

  controller.setRadius(半径)

  Gtk.Window.__init__(self,title=Title )

  self.set_default_size(600,400)

  self.set_position(Gtk .窗口位置。中心)

  hbox=Gtk .HBox(间距=5)

  自助添加(hbox)

  vbox=Gtk .VBox(间距=5)

  hbox.pack_start(vbox,True,True,2)

  table=Gtk .Table.new(4,2,False)

  vbox.pack_start(table,True,True,2)

  label=Gtk .标签(半径:)

  table.attach_defaults(label,0,1,0,1)

  label=Gtk .标签(周长:)

  table.attach_defaults(label,0,1,1,2)

  label=Gtk .标签(面积:)

  table.attach_defaults(label,0,1,2,3)

  label=Gtk .标签(体积:)

  table.attach_defaults(label,0,1,3,4)

  self.radiusEntry=Gtk .Entry.new()

  自我。半径入口。connect( changed ,self.textCallback,controller)

  桌子。attach _ defaults(self。半径条目,1,2,0,1)

  self.perimeterEntry=Gtk .Entry.new()

  自我。周界入侵。set _ sensitive(False)

  self.perimeterEntry.set_text(周长)

  桌子。attach _ defaults(self。周界入口,1,2,1,2)

  self.areaEntry=Gtk .Entry.new()

  自我。区域入口。set _ sensitive(False)

  self.areaEntry.set_text(面积)

  桌子。attach _ defaults(self。区域入口,1,2,2,3)

  self.volumeEntry=Gtk .Entry.new()

  自我。卷条目。set _ sensitive(False)

  self.volumeEntry.set_text(体积)

  桌子。attach _ defaults(self。卷条目,1,2,3,4)

  self.scale=Gtk .HScale.new_with_range(0,100,1)

  自我。规模。连接(值已更改,self.scaleCallback,控制器)

  vbox.pack_start(self.scale,False,False,2)

  self.image=Gtk .Image.new_from_pixbuf(pixbuf)

  hbox.pack_start(self.image,True,True,2)

  self.connect(delete-event ,Gtk.main_quit)

  模型=模型()

  控制器=控制器(型号)

  if __name__==__main__ :

  Gdk.threads_init()

  Gdk.threads_enter()

  win=MainWindow()

  iv=ImageView(型号,win.image)

  controller.addObserver(四)

  tv=TextView(model,win.radiusEntry,win.perimeterEntry,win.areaEntry,win.volumeEntry)

  controller.addObserver(电视)

  sv=ScaleView(model,win.scale)

  controller.addObserver(服务)

  win.show_all()

  Gtk.main()

  Gdk.threads_leave()

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: