Питон 3 ткинтер на Raspberry Pi - PullRequest
       3

Питон 3 ткинтер на Raspberry Pi

0 голосов
/ 05 декабря 2018

Давно боролся с этим, кто-то может указать мне правильное направление.Я пытаюсь установить приложение, которое при срабатывании датчика pir, подключенного к Rasberry Pi, открывает рамку с 7 кнопками на нем.Я хочу, чтобы кнопки при нажатии открывали отдельные кадры, в которые я хочу прикрепить изображение.Я хочу, чтобы рамка исчезла через определенное время.

Теперь я могу сделать это на стартовой странице без проблем, создав рамку и холст и загрузив изображение, а затем используя after с помощью destroy, чтобы избавиться от него после7 секунд.

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

Я не уверен, но у меня такое ощущение, что с классами я теперь установил отношения ведущий-ведомый с кадрами, что означает, что я не могу настроить их индивидуально?Я приложил код, с которым я сейчас играю, который относится к фреймам.Если кто-то может дать совет, мы будем очень признательны.

import tkinter as tk
from tkinter import *


LARGE_FONT= ("Verdana", 12)


class SeaofBTCapp(tk.Tk):

    def __init__(self, *args, **kwargs):

        tk.Tk.__init__(self, *args, **kwargs)
        container = tk.Frame(self)

        container.pack(side="top", fill="both", expand = True)

        container.grid_rowconfigure(100, weight=1)
        container.grid_columnconfigure(100, weight=1)

        self.frames = {}

        for F in (StartPage, PageOne, PageTwo, PageThree, PageFour, PageFive, PageSix, PageSeven):

            frame = F(container, self)

            self.frames[F] = frame

            frame.grid(row=0, column=0, sticky="nsew")

        self.show_frame(StartPage)

    def show_frame(self, cont):

        frame = self.frames[cont]
        frame.tkraise()


class StartPage(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self,parent)
        label = tk.Label(self, text="SMART BIN Tech", font=LARGE_FONT)
        label.pack(pady=10,padx=10)

        button = tk.Button(self, text="NO DRINKS or FOOD WASTE",
                            command=lambda: controller.show_frame(PageOne))
        button.pack()

        button2 = tk.Button(self, text="NO PAPER WASTE",
                            command=lambda: controller.show_frame(PageTwo))
        button2.pack()

        button3 = tk.Button(self, text="NO TEA BAGS",
                            command=lambda: controller.show_frame(PageThree))
        button3.pack()

        button4 = tk.Button(self, text="NO CANS or PLASTICS",
                            command=lambda: controller.show_frame(PageFour))
        button4.pack()

        button5 = tk.Button(self, text="LIST of RECYCLABLES",
                            command=lambda: controller.show_frame(PageFive))
        button5.pack()

        button6 = tk.Button(self, text="Vending Area Performance",
                            command=lambda: controller.show_frame(PageSix))
        button6.pack()

        button7 = tk.Button(self, text="UBS UK RATIO",
                            command=lambda: controller.show_frame(PageSeven))
        button7.pack()


class PageOne(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        label = tk.Label(self, text="NO DRINKS or FOOD WASTE", font=LARGE_FONT)
        label.pack(pady=10,padx=10)

        button1 = tk.Button(self, text="Back to Home",
                            command=lambda: controller.show_frame(StartPage))
        button1.pack()

class PageTwo(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        label = tk.Label(self, text="NO PAPER WASTE", font=LARGE_FONT)
        label.pack(pady=10,padx=10)

        button1 = tk.Button(self, text="Back to Home",
                            command=lambda: controller.show_frame(StartPage))
        button1.pack()


class PageThree(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        label = tk.Label(self, text="NO TEA BAGS", font=LARGE_FONT)
        label.pack(pady=10,padx=10)

        button1 = tk.Button(self, text="Back to Home",
                            command=lambda: controller.show_frame(StartPage))
        button1.pack()

class PageFour(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        label = tk.Label(self, text="NO CANS or PLASTICS", font=LARGE_FONT)
        label.pack(pady=10,padx=10)

        button1 = tk.Button(self, text="Back to Home",
                            command=lambda: controller.show_frame(StartPage))
        button1.pack()

class PageFive(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        label = tk.Label(self, text="RECYCLABLES", font=LARGE_FONT)
        label.pack(pady=10,padx=10)

        button1 = tk.Button(self, text="Back to Home",
                            command=lambda: controller.show_frame(StartPage))
        button1.pack()

class PageSix(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        label = tk.Label(self, text="Vending Area Performance", font=LARGE_FONT)
        label.pack(pady=10,padx=10)
        w = tk.Canvas(self,width=400,height=500)
        w.pack
        button1 = tk.Button(self, text="Back to Home",
                            command=lambda: controller.show_frame(StartPage))
        button1.pack()

class PageSeven(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        label = tk.Label(self, text="UBS UK RATIO", font=LARGE_FONT)
        label.pack(pady=10,padx=10)
        canvas = tk.Canvas(self,width=100, height=100)
        canvas.pack
        button1 = tk.Button(self, text="Back to Home",
                            command=lambda: controller.show_frame(StartPage))
        button1.grid(row=2, column=5)
        button1.pack()


app = SeaofBTCapp()

app.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...