tkinter в PyCharm не выводит линии
В python 3.10 окно работает нормально, но в пайчарме линий просто нет, только чистое окно.
from tkinter import Tk, Canvas, Frame, BOTH, Text, W
import math
from math import sqrt
from tkinter.ttk import Frame, Button, Label, Style
class Example(Frame):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
canvas = Canvas(self)
#Canvas.create_text(500, si2, anchor=W, font="Purisa 10",text="wp")
#Canvas.create_line(ut1, si1, ut2, si2, fill="#400040")
dop = 9
print('open')
canvas.create_line(20, dop, 20, dop)
canvas.create_line(20, dop, 20, dop, dop, 500)
#canvas.create_line(20, 20, 20, 500)
#canvas.create_line(20, 20, 20, 500, 500, 500)
def print_hi(name):
root = Tk()
ex = Example()
root.geometry("700x600+300+300")
root.mainloop()
if __name__ == '__main__':
print_hi('PyCharm')
Ответы (1 шт):
Автор решения: Сергей Кох
→ Ссылка
Без применения методов геометрии pack, grid и place ничего на экране не появиться. Немного поправил код
import tkinter as tk
class Example(tk.Frame):
def __init__(self, master):
super().__init__(master)
self.config(bg='red')
self.initUI()
def initUI(self):
self.canvas = tk.Canvas(self, bg='green')
self.canvas.pack(padx=10, pady=10)
self.canvas.create_text(100, 100, anchor='w', font='Purisa 20', text='wp')
#self.canvas.create_line(ut1, si1, ut2, si2, fill="#400040")
dop = 9
print('open')
self.canvas.create_line(20, dop, 20, dop)
self.canvas.create_line(20, dop, 20, dop, dop, 500)
self.canvas.create_line(20, 20, 20, 500)
self.canvas.create_line(20, 20, 20, 500, 500, 500)
class App(tk.Tk):
def __init__(self):
super().__init__()
self.frame = Example(self)
self.frame.pack(padx=10, pady=10)
if __name__ == "__main__":
app = App()
app.mainloop()