Почему в моем окне tkinter не отображается моя панель? - PullRequest
0 голосов
/ 17 октября 2019

У меня есть следующий код:

import tkinter
import cv2
from PIL import Image, ImageTk
import threading


class HudGui:
    def __init__(self, window):
        # defining everything for video capture and the tkinter window
    self.CapDev= cv2.VideoCapture(0)
    self.cams = []
    self.counter = 0
    self.frame = None
    self.panel = None
    self.wind = window

    btn = tkinter.Button(window, text="Snapshot!")
    btn.pack(side="bottom", fill="both", expand="yes", padx=10, pady=10)

    # defining threading for video stream
    self.stopEvent = threading.Event()
    self.thread = threading.Thread(target=self.videoLoop(), args=(1,))
    self.thread.start()

def videoLoop(self):
    while not self.stopEvent.is_set():

        # reading and modifying the frame to have the proper data type
        self.frame = self.CapDev.read()[1]
        image = cv2.cvtColor(self.frame, cv2.COLOR_BGR2RGB)
        image = Image.fromarray(image)
        image = ImageTk.PhotoImage(image)

        if self.panel is None:
            self.panel = tkinter.Label(image=image)
            self.panel.image = image
            self.panel.pack(side="left")   # side="left", padx=10, pady=10

            # otherwise, update the panel
        else:
            self.panel.configure(image=image)
            self.panel.image = image


hud = tkinter.Tk()
hud.title("HUD")

HudGui(hud)

hud.mainloop()

Когда я запускаю этот код, ничего не происходит. У меня нет окна, но я знаю, что он обновляет панель (я проверил это с печатью сообщений). Может ли быть проблема с правами доступа к камере и тому подобное?

Информация о проекте:

Python = 3.7.3

opencv-contrib-питон = 3.4.4.19

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