Уведомления

Группа в Telegram: @pythonsu

#1 Июль 4, 2017 14:15:08

solovs03
Зарегистрирован: 2017-02-15
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с tkinter

Решил поговнокодить тупо для практики и застрял на random, при каждом обращении к функции, объекту функции, собственной функции, объекту собственной функции выводит одни и те же числа. Цель программы выводить прямоугольники в разных местах с разным размером и разным цветом. Как при каждом обращение к функции random.randint() просить разные числа заданного диапазона?

Я ещё с time норм не разобрался за любую помощь с time буду очень благодарен, хотел бы чтоб она выводила время в реальном времени (через циклы нереально).

Я новичок, прошу не судить строго:

 from tkinter import *
import time
import random
colors = ['#1abc9c', '#2ecc71', '#3498db', '#9b59b6', '#34495e', '#16a085',
          '#2980b9', '#27ae60', '#95a5a6', '#ecf0f1', '#f1c40f', '#d35400']
def randomc():
    cvet = random.choice(colors)
    return cvet
z = randomc()
#cvet = random.choice(colors)
def xsiz():
    xsize = random.randint(10, 40)
    return xsize
xs = xsiz()
#xsize = random.randint(10, 40) 
def ysiz():
    ysize = random.randint(10, 40)
    return ysize
#ysize = random.randint(10, 40)
ys = ysiz()
def xlocat():
    xloca = random.randint(150, 400)
    return xloca
xloc = xlocat()
#xlocat = random.randint(150, 400)
def yloca():
    ylocat = random.randint(150, 400)
    return ylocat
ylocas = yloca()
#ylocat = random.randint(150, 400)
tmmm = time.time()
now_time = time.ctime(tmmm)
root = Tk()
root.title('My program')
canvas1 = Canvas(root, width=500, height=400, bg='green')
canvas1.pack()
canvas1.create_line(500, 400, 0, 0, width=5, fill='yellow')
canvas1.create_line(300, 400, 0, 0, width=5, fill='purple')
canvas1.create_line(750, 400, 0, 0, width=5, fill='red')
canvas1.create_text(415, 10, text=now_time, fill='white', font='family')
canvas1.create_rectangle(xloc, ylocas, xs, ys, fill=z)
canvas1.create_rectangle(xloc, ylocas, xs, ys, fill=z)
canvas1.create_rectangle(xloc, ylocas, xs, ys, fill=z)
canvas1.create_rectangle(xloc, ylocas, xs, ys, fill=z)
canvas1.create_rectangle(xloc, ylocas, xs, ys, fill=z)
root.mainloop() 

Почему у вас не выводится расстояние между строками?



Чтобы чего то достичь нужна - мотивация, и только. (C) Природа

Отредактировано solovs03 (Июль 4, 2017 14:17:08)

Офлайн

#2 Июль 4, 2017 14:38:30

krok64
Зарегистрирован: 2017-04-04
Сообщения: 75
Репутация: +  11  -
Профиль   Отправить e-mail  

Помогите с tkinter

Добавь в начало

 random.seed()
Хотя и без этого каждый раз разное рисуется.

Отредактировано krok64 (Июль 4, 2017 14:40:18)

Офлайн

#3 Июль 4, 2017 14:44:58

solovs03
Зарегистрирован: 2017-02-15
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с tkinter

krok64
Не помогло((, нужно чтоб для каждого прямоугольника были разные параметры.



Чтобы чего то достичь нужна - мотивация, и только. (C) Природа

Офлайн

#4 Июль 4, 2017 14:58:01

krok64
Зарегистрирован: 2017-04-04
Сообщения: 75
Репутация: +  11  -
Профиль   Отправить e-mail  

Помогите с tkinter

 canvas1.create_rectangle(xlocat(), yloca(), xsiz(), ysiz(), fill=randomc())
canvas1.create_rectangle(xlocat(), yloca(), xsiz(), ysiz(), fill=randomc())
canvas1.create_rectangle(xlocat(), yloca(), xsiz(), ysiz(), fill=randomc())
canvas1.create_rectangle(xlocat(), yloca(), xsiz(), ysiz(), fill=randomc())
canvas1.create_rectangle(xlocat(), yloca(), xsiz(), ysiz(), fill=randomc())

Офлайн

#5 Июль 4, 2017 15:10:29

solovs03
Зарегистрирован: 2017-02-15
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с tkinter

krok64
Большое спасибо! А с time не знаете случайно?



Чтобы чего то достичь нужна - мотивация, и только. (C) Природа

Офлайн

#6 Июль 4, 2017 15:10:57

krok64
Зарегистрирован: 2017-04-04
Сообщения: 75
Репутация: +  11  -
Профиль   Отправить e-mail  

Помогите с tkinter

как то так:

 from tkinter import *
import time
import random
colors = ['#1abc9c', '#2ecc71', '#3498db', '#9b59b6', '#34495e', '#16a085',
          '#2980b9', '#27ae60', '#95a5a6', '#ecf0f1', '#f1c40f', '#d35400']
def randomc():
    cvet = random.choice(colors)
    return cvet
z = randomc()
#cvet = random.choice(colors)
def xsiz():
    xsize = random.randint(10, 40)
    return xsize
xs = xsiz()
#xsize = random.randint(10, 40) 
def ysiz():
    ysize = random.randint(10, 40)
    return ysize
#ysize = random.randint(10, 40)
ys = ysiz()
def xlocat():
    xloca = random.randint(150, 400)
    return xloca
xloc = xlocat()
#xlocat = random.randint(150, 400)
def yloca():
    ylocat = random.randint(150, 400)
    return ylocat
ylocas = yloca()
#ylocat = random.randint(150, 400)
def timerupdate():
    tmmm = time.time()
    now_time = time.ctime(tmmm)
    a.configure(text=now_time)
    root.after(1000, timerupdate)
tmmm = time.time()
now_time = time.ctime(tmmm)
root = Tk()
root.title('My program')
canvas1 = Canvas(root, width=500, height=400, bg='green')
canvas1.pack()
canvas1.create_line(500, 400, 0, 0, width=5, fill='yellow')
canvas1.create_line(300, 400, 0, 0, width=5, fill='purple')
canvas1.create_line(750, 400, 0, 0, width=5, fill='red')
a = Label(text="")
a.pack()
canvas1.create_rectangle(xlocat(), yloca(), xsiz(), ysiz(), fill=randomc())
canvas1.create_rectangle(xlocat(), yloca(), xsiz(), ysiz(), fill=randomc())
canvas1.create_rectangle(xlocat(), yloca(), xsiz(), ysiz(), fill=randomc())
canvas1.create_rectangle(xlocat(), yloca(), xsiz(), ysiz(), fill=randomc())
canvas1.create_rectangle(xlocat(), yloca(), xsiz(), ysiz(), fill=randomc())
timerupdate()
root.mainloop() 

Офлайн

#7 Июль 4, 2017 15:22:21

solovs03
Зарегистрирован: 2017-02-15
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с tkinter

krok64
Благодарю, суть понял, буду эксперементировать



Чтобы чего то достичь нужна - мотивация, и только. (C) Природа

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version