• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z tkinter.Canvas

0 głosów
237 wizyt
pytanie zadane 6 września 2024 w Python przez kacper1445 Mądrala (5,070 p.)

Witam,

Chciałem zrobić przewijaną listę obrazów w tkinter, gdzie każdy obraz jest generowany ze strony pliku pdf. Obrazy ImageTk.PhotoImage ładuję na ttk.Label i później ten obiekt próbuję ładować na tk.Canvas.

    def __showPDFPreview(self) -> None:
        y: int = 0
        for page in self.__pdfHandler:
            photoLabel: ttk.Label = ttk.Label(self.__canvas, image=page)
            self.__canvas.create_window(100, y, window=photoLabel, anchor="nw")
            y += 150

        scroll: ttk.Scrollbar = ttk.Scrollbar(self.__canvas, orient=tk.VERTICAL, command=self.__canvas.yview)
        scroll.pack(side=tk.RIGHT, fill=tk.Y)
        self.__canvas.config(yscrollcommand=scroll.set, scrollregion=(0, 0, 0, y))

Sam plik pdfa odczytuję za pomocą biblioteki fitz, a konwersja na zdjęcie wygląda następująco:

    def __convertPageToImage(self, item: int) -> ImageTk.PhotoImage:
        page: fitz.Page = self.__pdfObjShow.load_page(item)
        pix: fitz.Pixmap = page.get_pixmap()
        img: Image = Image.frombytes('RGB', (pix.width, pix.height), pix.samples)
        # img.show()

        return ImageTk.PhotoImage(img)

Jednak z jakiegoś powodu obrazy te nie pojawiają się na tk.Canvas. Obiekty ttk.Label znajdują się jako dzieci tk.Canvas ale obrazu brak.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 191 wizyt
0 głosów
1 odpowiedź 643 wizyt
pytanie zadane 5 września 2022 w Python przez Mocaz Użytkownik (560 p.)
+1 głos
1 odpowiedź 760 wizyt

93,729 zapytań

142,668 odpowiedzi

323,283 komentarzy

63,288 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...