У меня есть два больших файла идентичного размера. Каждый - простой текст ASCII, и другой наложение, на которое наносят цветную маркировку, один байт за текстовый символ в соответствующем файле.
Эти файлы могут быть большими - до 2,5 МБ; возможно существенно больше, возможно, более чем 100 МБ позже.
Я хочу отобразиться, текст является средством просмотра текста с возможностью прокрутки, с помощью второго файла в качестве наложения. Выглядеть примерно так:
Таким образом, я сделал простое tkinter текстовое окно виджета в Python с полосой прокрутки и таким.
Мой код похож на это:
hottest = 0
for heat in heatmap:
hottest = max(hottest,ord(heat))
hottest += 1
for heat in xrange(0,hottest):
factor = int((float(heat)/float(hottest))*100.0)
# an observation; tkinter seems to normalise custom colours
# to nearest in it's palette, which means I can't use custom
# gradients of red; if anyone knows how to use subtle custom colours?
bgcolour = "gray%d" % (100-factor)
fgcolour = "gray%d" % factor
text.tag_config("n%d"%heat,background=bgcolour,foreground=fgcolour)
text.insert("1.0",f.read())
ofs = 0
for heat in heatmap:
if 0 != ord(heat):
coord_start = "1.0 + %d chars"%ofs
coord_stop = "1.0 + %d chars"%(ofs+1)
text.tag_add("n%d"%ord(heat),coord_start,coord_stop)
ofs += 1
text.config(state=DISABLED)
text.focus()
Однако я сталкиваюсь с неприятными проблемами производительности:
загрузка текста
Прокрутка. Если это много форматирования, видимого в текущем окне, это идет очень медленно
Если бы я приближался к этой проблеме в, скажем, Dephi или wxWidgets то или что бы то ни было, я имел бы пользовательски оттянутый контроль.
Каков самый простой путь в Python и Tkinter?
Я не совсем ясно, что вы спрашиваете (100% прозрачность означает, что что-то невидимое, и невидимый текст, как правило, не отличная идея), но в целом:
Свойство CSS непрозрачность
применяется ко всему элементу, а не только к его тексту. Таким образом, если у вас есть этот HTML:
< div class = «opacity-50» >
Это див с фоновым цветом и 50% непрозрачностью
И этот CSS:
.opacity-50 {
фон: # ccc;
цвет: # 000;
непрозрачность: 0,5;
}
Тогда и фон, и текст будут иметь 50% непрозрачность.
rgba
цветовые значения позволяют задавать полупрозрачные цвета. Итак, если у вас есть этот HTML:
< div class = «text-opacity-50» >
Это див с полупрозрачным текстом
И этот CSS:
.text-opacity-50 {
фон: # ccc;
цвет: rgba (0,0,0,0,5);
}
Тогда только его текст будет иметь 50% непрозрачность.
Я думаю, что rgba
цветовые значения поддерживаются немногим меньшим количеством просмотров, чем непрозрачность
.
Вы хотите sqlreset
:
% python manage.py help sqlreset
Usage: manage.py sqlreset [options] <appname appname ...>
Prints the DROP TABLE SQL, then the CREATE TABLE SQL, for the given app name(s).
Options:
-v VERBOSITY, --verbosity=VERBOSITY
Verbosity level; 0=minimal output, 1=normal output,
2=all output
--settings=SETTINGS The Python path to a settings module, e.g.
"myproject.settings.main". If this isn't provided, the
DJANGO_SETTINGS_MODULE environment variable will be
used.
--pythonpath=PYTHONPATH
A directory to add to the Python path, e.g.
"/home/djangoprojects/myproject".
--traceback Print traceback on exception
--version show program's version number and exit
-h, --help show this help message and exit
Как и при изменении модели, Django не будет автоматически делать это для вас. Команда будет выводиться только для копирования и вставки.
-121--1684969-Как насчет использования прокручиваемого холста и только когда-либо рисования текста/тепловой карты, который открыт для пользователя? Это должно дать вам быструю начальную рисовку и быструю перерисовку, когда вещи перемещаются, независимо от размера файла.
Если вы хотите больше скорости и больше управления, то вам потребуется какой-то виртуальный холст, где на самом деле существует только область на дисплее и область вокруг него, все остальное рисуется только в том случае, когда на него ссылаются. Я не думаю, что TkInter дает вам такой большой контроль, хотя такие вещи, как Widget Construction Kit (WCK) должны делать.