Я хочу отобразить текст в QTextEdit. Я использую функцию format(), чтобы выровнять текст и сделать его похожим на чистую таблицу. Хотя я получаю прекрасный результат при отображении текста в оболочке, текст, похоже, не выравнивается в QTextEdit, например, если ширина символа меняется. В основном я вижу разницу, когда присутствует символ «-».Выравнивание текста с использованием формата в QTextEdit в Python
>>> first_line = "{:<10} {:<3} - {:<20}".format("1234", "EUR", "Mrs Smith")
>>> second_line = "{:<10} {:<3} - {:<20}".format("-45.62", "GBP", "M Doe")
>>> print first_line, "\n", second_line
1234 EUR - Mrs Smith
-45.62 GBP - M Doe
Результат, как ожидалось, в оболочке. Но с QTextEdit выравнивание не является правильным, так как вы можете видеть небольшую разницу между «EUR» и «GBP». Это не так много в этом примере, но когда я использую его со многими другими строками, это действительно не выглядит правильным.
my_text_edit = QTextEdit()
my_text_edit.append(first_line)
my_text_edit.append(second_line)
Я пытался использовать QPlainTextEdit и получил тот же результат. В любом случае, чтобы получить то, что я хочу, с QTextEdit/QPlainTextEdit? или я должен использовать другой виджет для отображения (без редактирования не требуется, ярлык будет делать, но мне нравится внешний вид редактирования текста)?
Какой шрифт вы используете в своем экземпляре 'QTextEdit'? – quamrana
Хороший вопрос. Я не указывал какой-либо конкретный шрифт, поэтому я предполагаю, что он по умолчанию. Я попытался установить шрифт «monospace», и теперь расстояние хорошее! Я нахожусь в Windows, но обязательно буду использовать свою программу на Mac, поэтому я пытаюсь использовать функцию systemFont для получения шрифта фиксированной ширины по умолчанию, но не может заставить его работать. Я использую PySide версии 1.2.4 – Enaid