Как установить Графику межстрочного интервала. DrawString

Одной из первых оптимизаций было бы фактически break, как только вы нашли одно совпадение:

key_words = [ "one", "two", "three"]
log_lines = os.popen("logcat");

for log_line in log_lines:
    for keyword in key_words:
        if keyword in log_line:
            print log_line
            break    # stop looking for keywords if you already found one

Более читабельное решение - заменить проверку цикла ключевого слова регулярным выражением. Если есть совпадение, выведите строку:

import re
key_words = [ "one", "two", "three"]
regex = re.compile('|'.join(key_words))    # one|two|three

log_lines = os.popen("logcat");
for log_line in log_lines:
    if regex.match(log_line):    # returns None if no match, an object if there is a match
        print log_line

С точки зрения производительности, не уверен, что будет быстрее, но один будет более читабельным. Однако в результатах есть некоторые оговорки.

9
задан Ronnie 4 December 2008 в 21:59
поделиться

2 ответа

Этот MSDN должен помочь Вам. Межстрочный интервал является результатом Шрифта, который Вы используете. Вы, возможно, должны разбить свои команды DrawString во множественные вызовы при необходимости в пользовательском межстрочном интервале.

8
ответ дан 4 December 2019 в 21:13
поделиться

Эта регистрация форума Microsoft может быть полезной:

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1507414&SiteID=1

Это показывает, как MeasureString может использоваться для определения, сколько из текста будет соответствовать на каждой строке, затем с помощью этого для прогрессивного рендеринга содержания всего прямоугольника линию за линией. К сожалению, я не думаю, что существует встроенное свойство межстрочного интервала, таким образом, необходимо будет пойти для ручного подхода. Автор сообщения использует Высоту шрифта * 1.5.

Также стоит исследовать StringFormatFlags - необходимо будет удостовериться, что и вызовы DrawString и MeasureString используют тот же StringFormat, таким образом, рендеринг и измерение последовательны:

http://msdn.microsoft.com/en-us/library/system.drawing.stringformatflags.aspx

2
ответ дан 4 December 2019 в 21:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: