Форум сайта python.su
Есть код(приводить нет смысла) с использованием Tkinter который прекрасно работает на виндовс и мак, но при таком импортирование из __init__.py:
import init
Офлайн
__init__.py это зарегистрированное имя. Я называю несущий файл в этом случае system.py или main.py.
__init__.py имеет смысл, когда Вы работаете с пакетом. Но тогда указывается название пакета, а __init__.py просто лежит в нем. Кроме того в __init__.py есть возможность конфигурировать загрузку пакета и еще немножко няшностей
Офлайн
4kpt_III
__init__.py это зарегистрированное имя. Я называю несущий файл в этом случае system.py или main.py.__init__.py имеет смысл, когда Вы работаете с пакетом. Но тогда указывается название пакета, а __init__.py просто лежит в нем. Кроме того в __init__.py есть возможность конфигурировать загрузку пакета и еще немножко няшностей
Офлайн
Я не совсем понимаю Вашу ситуацию. Я делаю так. Создаю файл, который запускает базовый виджет (чаще всего это root с верхним меню) . Все остальные виджеты импортируются по необходимости при выборе нужного пункта меню. Строятся они, чаще всего либо на frame, либо на toplevel. В качестве аргумента я им передаю или весь root или его часть под меню (зависит от того, каким меню я пользовался - если встроенным - то весь root, если своим - то внутренний frame). Они уже на нем и строятся (используют или root или frame в качестве подложки). Классу, построенному на toplevel я не передаю ничего Вот про этот system.py я и писал. В любом моем проекте GUI является основным управляющим элементом. Все остальное строится уже на нем: вызов БД, создание или изменение файлов, подключение к сервисам или к сайтам и т.п.
P.S. Я каждую тысячу создаю новую учетку. Ну не подходит желтый цвет к цвету моих глаз Да и фотка эта хороша. Хоть на ней и самка
Отредактировано 4kpt_III (Дек. 22, 2014 14:55:32)
Офлайн
4kpt_III
Я не совсем понимаю Вашу ситуацию. Я делаю так. Создаю файл, который запускает базовый виджет (чаще всего это root с верхним меню) . Все остальные виджеты импортируются по необходимости при выборе нужного пункта меню. Строятся они, чаще всего либо на frame, либо на toplevel. В качестве аргумента я им передаю или весь root или его часть под меню (зависит от того, каким меню я пользовался - если встроенным - то весь root, если своим - то внутренний frame). Они уже на нем и строятся (используют или root или frame в качестве подложки). Классу, построенному на toplevel я не передаю ничего Вот про этот system.py я и писал. В любом моем проекте GUI является основным управляющим элементом. Все остальное строится уже на нем: вызов БД, создание или изменение файлов, подключение к сервисам или к сайтам и т.п.
Офлайн
Многопоточное приложение?
Офлайн
4kpt_IIIДа
Многопоточное приложение?
Офлайн
Ну тогда сложно. Многопоточность и tkinter это вообще отдельная работа. Простое импортирование работает. Только что проверил. Как с threading я даже не знаю… Нужно именно копаться. Честно говоря я не сталкивался. Многопоточность дело нужно, но вот tkinter с ним прямо дружить не очень любит.
Офлайн
4kpt_III
Ну тогда сложно. Многопоточность и tkinter это вообще отдельная работа. Простое импортирование работает. Только что проверил. Как с threading я даже не знаю… Нужно именно копаться. Честно говоря я не сталкивался. Многопоточность дело нужно, но вот tkinter с ним прямо дружить не очень любит.
from Tkinter import Tk, Text from threading import Thread root = Tk() txt = Text(root, text='1111') txt.pack() def test(txt): txt.insert(INSERT, '22222') txt.configure(state='disabled') #RuntimeError: main thread is not in main loop Thread(target=test, args=(txt, )).start() root.mainloop()
Офлайн
Не знаю. Не пользовался. Попробуйте. Если поможет, то напишите - буду знать. Вообще многопоточность в tkinter реализуется не так. Главный mainloop нужно откреплять от тредовой системы. Я об этом писал. Приводил примеры. Можете поискать. Не найдете - напишите. Выложу код снова.
P.S. Мне хватало стандартных возможностей. Я просто использовал с учетом специфических особенностей tkinter.
Отредактировано 4kpt_III (Дек. 22, 2014 15:39:44)
Офлайн