Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.08.2014, 12:26   #1
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию Python. В чем отличие Entry.delete(0, END) от Entry.delete(0.0, END) и еще вопрос

Привет ребята!

Я пару дней как в плотную начал штудировать питон и не могу понять в чем отличие


Entry.delete(0, END) от Entry.delete(0.0, END) и от Entry.delete(1.0, END)


И еще есть простой цикл но ...

PHP код:
for i in xrange(010):
    
    
    
Entry.delete(0.0END)
    
Entry.insert(0.0,str(i))

    print 
i
    
    sleep
(0.5
Почему в терминале каждые 0.5 сек. выводится инфа а в Entry.insert(0.0,str(i)) тишина и только по завершению цикла там появляется последняя цифра ?

GUI как бы зависают, и в конце только обновляется инфа.

Пытался выполнять вот эту часть кода в отдельной функции, но результат точно такой же как и выше
PHP код:
for i in xrange(010):
    
    
foo()
    print 
i
    sleep
(0.5)
    
def foo():
    
Entry.delete(0.0END)
    
Entry.insert(0.0,str(i)) 
Использую Tkinter GUI и python 2.7.3 / Debian 7
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 09.08.2014, 18:13   #2
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Может кому пригодится!


"get()"
my_field.get("1.0",END)

1.0: Означает взять из ROW=1 и COL=0

END: в этом случае вернет все что там есть до END конца.

"insert()"

my_entry_field.insert(0, "banana")
0: Указывает на начальную позицию куда будет всталяться ,"banana"


"insert()"

my_field.insert("1.0", "Some Text")
Вставил текст в самое начало первого ряда нулево колонки

"delete()"

my_entry_field.delete(0, END)
0 : Это удалит весь контент с позиции "0"
END :
END Указывает на последний символ. Тоесть с "0" нелевой позиции и до "END" конца


"delete()"

my_large_field.delete("1.0", END)
Токже очистит все что есть начиная с позиции "1" и до своего "конца" поля "END"

=================================== =============================

А вот почему GUI не обновляются пока что не понял. :s если кто знает подскажите ребята!
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 09.08.2014, 23:24   #3
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Вторая проблема решается следующий способом.

Что бы GUI не застывали до окончания цикла или еще чего.
Нужно использовать метод update()

пример:

PHP код:
for ITERATOR in xrange(010000):
    
#sleep(0.25)
    
self.textArea_1.delete(0END);
    
self.textArea_1.insert(0ITERATOR)
    
self.textArea_1.update() 
Но в документации написано, что нужно быть очень осторожным с этим методом.

Не правильное применение "на пример вызов метода через события может пагубно отразится"

Оригинальный текст:

Цитата:

update()

Processes all pending events, calls event callbacks, completes any pending geometry management, redraws widgets as necessary, and calls all pending idle tasks. This method should be used with care, since it may lead to really nasty race conditions if called from the wrong place (from within an event callback, for example, or from a function that can in any way be called from an event callback, etc.). When in doubt, use update_idletasks instead.


update_idletasks()

Calls all pending idle tasks, without processing any other events. This can be used to carry out geometry management and redraw widgets if necessary, without calling any callbacks.
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 12.08.2014, 12:09   #4
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

ssssssssssssss
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/

Последний раз редактировалось pompiduskus; 12.08.2014 в 23:17.
pompiduskus вне форума Ответить с цитированием
Старый 12.08.2014, 23:17   #5
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

ssssssssssssss
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
error C2541: 'delete' : cannot delete objects that are not pointers novokhatsky Общие вопросы C/C++ 2 14.12.2009 10:25
SQL: Insert и Delete в чем ошибка? FReeMAN(Q) Помощь студентам 2 17.04.2009 18:09
Перегрузка операций new, new[], delete, delete[] IgorKr Общие вопросы C/C++ 1 22.10.2008 12:14