Найти - Пользователи
Полная версия: Tkinter и потоки
Начало » GUI » Tkinter и потоки
1 2 3
Dimka665
при использовании запятой происходит упаковка в кортеж.
при запяточии - нет.
gmorgunov
Спасибо. Я это подозревал.

Но что/кто упаковывает в кортеж? И как этот кортеж дальше используется ?

И почему с запятой и запяточием работает одинаково ?

Спасибо заранее.
Dimka665
запятая упаковывает в кортеж. никак не используется.
>>> a = 11
>>> b = 22
>>> c = 33
>>> x = a, b, с
>>> print x
(11, 22, 33)
>>> a, b, с = x # распаковываем
в случае с запятой, чтобы составить кортеж вызывается 2 метода и составляется кортеж из возвращенных значений.
в случае с зяпяточием происходит просто вызов 2-х методов.
gmorgunov
Спасибо, все понял.
питекантроп
мужики, есть такой класс:

from Tkinter import *
from sys import *
from thread import *
from threading import *
from time import *

class TK:

def SER(self,res,err):#ShowExpectedResults
self.res = res
self.err = err
self.root = Tk()

self.F = Frame (self.root)
self.F.pack()
self.label = Label(self.F, height = 1, text = " ")
self.label.grid(row = 0)

self.flag1 = IntVar()
self.flag2 = IntVar()
self.flag3 = IntVar()
self.flag4 = IntVar()
self.flag5 = IntVar()
self.flag6 = IntVar()
self.flags = [self.flag1,self.flag2,self.flag3,self.flag4,self.flag5,self.flag6]

self.checkbutton1 = Checkbutton(self.F,variable = self.flags[0])
self.checkbutton2 = Checkbutton(self.F,variable = self.flags[1])
self.checkbutton3 = Checkbutton(self.F,variable = self.flags[2])
self.checkbutton4 = Checkbutton(self.F,variable = self.flags[3])
self.checkbutton5 = Checkbutton(self.F,variable = self.flags[4])
self.checkbutton6 = Checkbutton(self.F,variable = self.flags[5])
self.arr = [self.checkbutton1,self.checkbutton2,self.checkbutton3,self.checkbutton4,self.checkbutton5,self.checkbutton6]


for i in range(0,len(self.res)):
self.arr[i]["text"] = self.res[i]
self.arr[i].select()
self.arr[i].grid(row=i+1, column=0, sticky = W, ipadx = 10)
self.arr[i].config (font = (13))
self.button = Button(self.F)
self.button["width"]= 18
self.button["text"]= "OK"
self.button.bind("<Button>",self.check)
self.button.grid(pady = 14)
self.root.title('Ожидаемые результаты')
self.root.resizable(0,0)
self.root.bell()
self.root.mainloop()

def check(self,event):
for i in range(0,len(self.res)):
if self.flags[i].get() == 0:
test.fail(self.err[i])
self.root.destroy()

def CL(self,res,err):
res = []
err = []

def SM(self, Text):
self.root1 = Tk()
self.F = Frame(self.root1)
self.F.pack()
self.label1 = Label (self.F, text = "")
self.label1.grid(row = 0)
self.label = Label (self.F, text = Text)
self.label.grid(row = 1, ipadx = 10)
self.label.config(font = (13))
self.root1.title('Внимание!')
self.root1.resizable(0,0)
Thread(target = self.run, name = "t2").start()
self.root1.mainloop()


def run(self):
sleep(3)
self.root1.destroy()

res = []

res.append(u"Окна имеют одинаковый размер")
res.append(u'Окна не выходят за пределы основного окна')
res.append('qwe3qwe3qwe3qwe3')
res.append('qwe4qwe4qwe4qwe4')
res.append('qwe5qwe5qwe5qwe5')


err = []

err.append('QWE1')
err.append('QWE2')
err.append('QWE3')
err.append('QWE4')
err.append('QWE5')

n = TK()
n.SM("sdfsdf")

#sleep(0.5)
n.SER(res,err)

n.SM("sdfsdf")
проблема в том, что при первом создании окна методом SM оно через 3 секунды не закрывается, а тупо виснет, и при дальнейшей работе Python закрывается с критической ошибкой.
как правильно организовать работу потоков или вообще закрытие окна?
Ferroman
Стоило сделать отдельную тему.
self.err = err
self.root = Tk()

self.F = Frame (self.root)
self.F.pack()
Это так форматирование поехало, или в изначальном коде так же?
Какую ошибку выбрасывает питон?
питекантроп
Ferroman
Это так форматирование поехало, или в изначальном коде так же?
форматирование поехало..

Какую ошибку выбрасывает питон?
AppName: python.exe AppVer: 0.0.0.0 ModName: tk84.dll
ModVer: 8.4.2.7 Offset: 0006419a

если это о чем-то скажет.. )
igor.kaist
питекантроп
AppName: python.exe AppVer: 0.0.0.0 ModName: tk84.dll
ModVer: 8.4.2.7 Offset: 0006419a

если это о чем-то скажет.. )
хм…. Что то вообще у тебя странный код… в stderr что нибудь вообще вылазит? Если нет, то ты библиотеку tk запутал….
на dumpz.org попробуй выложить исходник, разберемся, а то лень форматирование править…
питекантроп
igor.kaist
хм…. Что то вообще у тебя странный код… в stderr что нибудь вообще вылазит? Если нет, то ты библиотеку tk запутал….
на dumpz.org попробуй выложить исходник, разберемся, а то лень форматирование править…
форматирование исправил..
http://dumpz.org/3628/ - это оно?

если не сложно, напиши как посмотреть, что в stderr выводится..
igor.kaist
ооо…. ты где этот код взял? :)))
Одну ошибку исправляешь, вторая появляется… я на 5 сдался…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB