1

Тема: Допоможіть з класами

Що треба додати в якості назви канвасу, щоб код запрацював?

from tkinter import *

class Space():
    def __init__(self, root):
        =Canvas(root, bg="green")
        .pack()

class Line():
    def __init__(self, space):
        .create_line([10, 10], [100, 100])
        

root=Tk()

space1=Space(root)
l1=Line(space1)

root.mainloop()

2

Re: Допоможіть з класами

import Tkinter
import tkMessageBox

top = Tkinter.Tk()

C = Tkinter.Canvas(top, bg="blue", height=250, width=300)

coord = 10, 50, 240, 210
arc = C.create_arc(coord, start=0, extent=150, fill="red")

C.pack()
top.mainloop()

3

Re: Допоможіть з класами

height= , width= try?

4

Re: Допоможіть з класами

ні, ви трішки не зрозуміли. Все повинно залишитися у вигляді класів

5

Re: Допоможіть з класами

[img]d:\vmv_project\Django\err1.png[/img]

Подякували: Fox1

6

Re: Допоможіть з класами

vasyliv написав:

[img]d:\vmv_project\Django\err1.png[/img]

давно я такого не видив

7

Re: Допоможіть з класами

? =Canvas(root, bg="green")

8 Востаннє редагувалося Fox (15.11.2017 20:34:41)

Re: Допоможіть з класами

vasyliv написав:

[img]d:\vmv_project\Django\err1.png[/img]

Прихований текст

Це шедевр.

Якось так...

9

Re: Допоможіть з класами

Допоможіть будь ласка. Дуже потрібно!

10 Востаннє редагувалося Fox (15.11.2017 20:51:00)

Re: Допоможіть з класами

import Tkinter

class Window(object):
    def __init__(self, tope):
        self.canv = Tkinter.Canvas(tope, bg="white", height=250, width=300)
        self.canv.pack();
    def line(self, x, y):
        self.canv.create_line(x, y)
        return 1;
 
top = Tkinter.Tk()

wnd = Window(top);
wnd.line([10, 10], [100, 100]);
top.mainloop()

Вот якось так

11 Востаннє редагувалося ykozolup (15.11.2017 21:02:13)

Re: Допоможіть з класами

vtorgashov написав:
import Tkinter

class Window(object):
    def __init__(self, tope):
        self.canv = Tkinter.Canvas(tope, bg="white", height=250, width=300)
        self.canv.pack();
    def line(self, x, y):
        self.canv.create_line(x, y)
        return 1;
 
top = Tkinter.Tk()

wnd = Window(top);
wnd.line([10, 10], [100, 100]);
top.mainloop()

Вот якось так

Дякую, але, на жаль, цей варіант трішки не підходить. Потрібно саме двома класами.

12

Re: Допоможіть з класами

import Tkinter

class Window(object):
    def __init__(self, tope):
        self.canv = Tkinter.Canvas(tope, bg="white", height=250, width=300)
        self.canv.pack();
    def get(self):
        return self.canv;
class Line(object):
    def __init__(self, x, y, wnd):
        wnd.get().create_line(x, y)
 
top = Tkinter.Tk()

wnd = Window(top);
l1 = Line([10, 10], [100, 100], wnd);
top.mainloop()
Подякували: ykozolup1

13

Re: Допоможіть з класами

vtorgashov написав:
import Tkinter

class Window(object):
    def __init__(self, tope):
        self.canv = Tkinter.Canvas(tope, bg="white", height=250, width=300)
        self.canv.pack();
    def get(self):
        return self.canv;
class Line(object):
    def __init__(self, x, y, wnd):
        wnd.get().create_line(x, y)
 
top = Tkinter.Tk()

wnd = Window(top);
l1 = Line([10, 10], [100, 100], wnd);
top.mainloop()

Величезне спасибі!!!