0
0 Комментариев
  1. Python 3.7
  2. Windows
  3. Добрый день! Подскажите, пожалуйста, мне необходимо сделать окно с кнопками, при нажатии на них: графики, окно с информацией. Проблема с кнопками, в том как указать в них функцию к графику/окну. Не понятно на счет переменных (self, event) и в каком месте писать функции. Сейчас при нажатии ничего не открывается, но и ошибок нет.
  4. from tkinter import Tk, RIGHT, BOTH, RAISED
    from tkinter import Tk, Label, BOTH, Frame, Button, Menu, Canvas, W
    from tkinter import ttk
    from tkinter.ttk import *
     import matplotlib.pyplot as plt
    import numpy as np
      class Example(Frame):
     def __init__(self, parent):
      Frame.__init__(self, parent)
      self.parent=parent
      self.initUI()
       def initUI(self):
      self.parent.title("Buttons")
      self.style=Style()
      self.style.theme_use("default")
         frame=Frame(self, relief=RAISED, borderwidth=1)
      frame.pack(fill=BOTH, expand=True)
     #Печать
      self.but=Button()
      self.but["text"]="Печать"
      self.but.bind("<Button-1>",self.printer)
      self.but.pack()
     #Гистограмма
      s=['one','two','three','four','five']
      x=[1,2,3,4,5]
      z1=[50,12,16,27,20]
      fig=plt.figure()
      plt.bar(x,z1)
      plt.title('Simple bar chart')
      plt.grid(True) 
        self.but=Button()
      self.but["text"]="Гистограмма"
      self.but.bind("<Button-1>",plt.show)
      self.but.pack()
        #Кнопки с функциями
      self.but=Button()
      self.but["text"]="О разработчике"
      self.but.bind("<Button-2>", self.razr)
      self.but.pack()
            self.but=Button()
      self.but["text"]="Гист 2"
      self.but.bind("<Button-3>", self.A)
      self.but.pack()
        #Меню - выход
      menubar=Menu(self.parent)
      self.parent.config(menu=menubar)
         fileMenu=Menu(menubar)
      fileMenu.add_command(label="Exit",command=self.onExit)
      menubar.add_cascade(label="File",menu=fileMenu)
        def onExit(self):
      self.quit()
        def printer(self, event):
      print("Как всегда 'Hello'")
       def razr(self, event):
      root=Tk()
      root.title("О разработчике")
      root.geometry('350x100')
      lb2 = Label(root, text="Разработчик: Андрей.", font=("Arial Bold", 18))
      lb2.grid(column=0, row=0)
       def A(self, event):
      objects = ('СУЭК', 'Кузбассразресуголь', 'Южный Кузбасс', 'Распадская')
      y_pos = np.arange(len(objects))
      performance = [74.5,18.1,15.6,10.6]
      plt.bar(y_pos, performance, align='center', alpha=0.5)
      plt.xticks(y_pos, objects)
      plt.ylabel('компании')
      plt.title('Крупнейшие уголедобывающие компании России')
      plt.show()
          def main():
     root=Tk()
     root.geometry("300x200+300+300")
     app=Example(root)
     root.mainloop()
     if __name__=='__main__':
     main()


Добавить комментарий