2015-11-18 3 views
1

Я пытаюсь создать кнопки в программе, чтобы вывести пользователя на другие экраны. Я создал изображения на ярлыках, но не уверен, как сделать их функциональными кнопками, которые переносят пользователей на другую страницу. Вы можете видеть в моем коде 2 кнопки, которые мне нужны, это цитата с поиском и новая цитата. СпасибоЯ пытаюсь создать кнопки в tkinter

from tkinter import * 
class Window(): 
def __init__(self,master): #constructor 
self.master = master  
self.master.title("Borras Roofing Quotation System") #sets title of window 

self.master.geometry("2160x1440") #sets size of window 
self.master.configure(background = "white") # sets background colour of window. 

self.Borras = PhotoImage(file = "Borras.Logo.PNG") #sets up image 
self.BorrasLabel = Label(self.master, image = self.Borras, bg = "white", width='1000', height= '500') #puts image onto label 
self.BorrasLabel.pack() 

self.newquote = PhotoImage(file = "Process_New_Quote_Button.PNG") #sets up image 
self.newquoteLabel = Label(self.master, image = self.newquote, bg = "white") #puts image onto label 
self.newquoteLabel.place(x = 200, y = 500) 

self.searchquote = PhotoImage(file = "Search_Current_Quote_Button.PNG") #sets up image 
self.searchquoteLabel = Label(self.master, image = self.searchquote, bg = "white") #puts image onto label 
self.searchquoteLabel.place(x = 800, y = 500) 

root = Tk() 
userPassWindow = Window(root) 
root.mainloop() 
+0

Вы хотите знать, как функциональность к кнопкам? Вы пробовали добавить 'command'? 'Например, b = Button (text =" Click Me ", command = имя_функции)'? –

ответ

0

Для начала вам нужно использовать экземпляры Button, а не Label, если вы хотите чего-то добиться, щелкнув по нему. Если добавить

command = anyfunction 

в качестве аргумента к кнопке, то функция будет выполняться при нажатии кнопки (функция может быть объявлена ​​внутри или вне класса, в зависимости от того, что область действия вы хотите). Оттуда использовать процедуру

.pack_forget() 

или

.place_forget() 

для удаления элементов (хотя это и не удалять их) и пакет, место или сетки новые элементы в вашем «окна». Если вы ищете фактические экраны, чтобы упаковать и забыть пакет, вы должны использовать tkinter Frames. Вот полезная ссылка, которая покажет вам, как использовать каждый виджет правильно:

http://effbot.org/tkinterbook

1

Для добавления кнопок в ваших окнах, которые называют открытым СЖВЗОМ один, я предлагаю вам использовать наследование виджетов Tkinter, чтобы настроить вас новые созданные окна, как вам нравится.

Вы пример должен быть:

from Tkinter import * 

class search(Toplevel): 
     #Just inherits TopLevel window 
     #You can custumize as ou want 
    def __init__(self, parent, master=None): 
      Toplevel.__init__(self, master) 
      #Save parent reference to modify parent view from search view 
      self.parent = parent 

class quote(Toplevel): 
    def __init__(self, parent, master=None): 

      self.parent = parent 
      Toplevel.__init__(self, master) 


class Window(): 
     def __init__(self,master): #constructor 
      self.master = master  
      self.master.title("Borras Roofing Quotation System") #sets title of window 

      self.master.geometry("400x440") #sets size of window 
      self.master.configure(background = "white") # sets background colour of window. 

      self.Borras = PhotoImage(file = "Borras.Logo.PNG") #sets up image 
      self.BorrasLabel = Label(self.master, image = self.Borras, bg = "white", width='1000', height= '500') #puts image onto label 
      self.BorrasLabel.pack() 

      self.newquote = PhotoImage(file = "Process_New_Quote_Button.PNG") #sets up image 
      self.newquoteLabel = Label(self.master, image = self.newquote, bg = "white") #puts image onto label 
      self.newquoteLabel.place(x = 200, y = 500) 

      self.searchquote = PhotoImage(file = "Search_Current_Quote_Button.PNG") #sets up image 
      self.searchquoteLabel = Label(self.master, image = self.searchquote, bg = "white") #puts image onto label 
      self.searchquoteLabel.place(x = 800, y = 500) 
      search_quote = Button(text="Search quote", command=self.search) 
      quote = Button(text="Quote", command=self.quote) 
      search_quote.pack() 
      quote.pack() 

     def search(self): 
      #Pass parent reference 'self' 
      search(self) 

     def quote(self): 
      quote(self)  

root = Tk() 
userPassWindow = Window(root) 
root.mainloop() 
Смежные вопросы