2016-09-08 2 views
4

Я разрабатываю приложение Tkinter, и на какой-либо метке мне нужно поставить формулу, которая должна выглядеть как рациональное число (выражение1/выражение2, как числитель и знаменатель и бар между ними). Я сделал некоторые копания и не мог найти ничего связанного с ним. Любые предложения о том, как это можно сделать?Как напечатать/показать выражение в форме рационального числа в python

Я даже не смог найти что-либо, напечатав фрагмент в формате рационального числа на консоли. Я oonly заботиться о внешности и вычисления не будет с ним, его просто ярлык

+1

Низкотехнологичный: числитель в одной метке, знаменатель в другом и тонкий сплошной прямоугольник между ярлыками. Тонкая настройка шрифтов и выравнивание могут заставить его выглядеть красиво. Привет технологий: узнайте, как визуализировать LaTex или другую математическую разметку в Tkinter. –

+0

@JohnColeman, если вы разместите свой комментарий в качестве ответа, я его приму. Я просто играл с лейблами, занимал некоторое время, но работал очень хорошо. –

ответ

1

Высокотехнологичным решением было бы использовать matplotlib в Tkinter. Он предоставляет уменьшенную версию Latex, которую он называет mathtext. Этот маршрут выглядит нелегко, но кажется возможным. См. this вопрос для деталей. Если этот способ кажется слишком вовлеченным, подобная, но, возможно, более простая идея - использовать MathML (официально часть HTML5) для разметки. В Tkinter может быть проще внедрить.

Сравнительно низкотехнологичный подход заключается в использовании двух меток (с невидимыми границами) для числителя и знаменателя соответственно, с тонким прямоугольником между ними. Это потребует некоторой настройки, но вы должны иметь возможность настраивать шрифты и выравнивание, чтобы результат выглядел как одно выражение.

0
print '%s'%Fraction(1.5) 
>>> '3/2' 

См: https://pymotw.com/2/fractions/

+0

http://blogs.diariodepernambuco.com.br/espacodaprevidencia/wp-content/uploads/2013/04/img-thing.jpg Этот формат, который я пытаюсь отобразить, вместо простой одной строки 3/2 –

2
print('\n\033[4m'+'3' + '\033[0m'+'\n2') 

\033[4m позволяет подчеркнуть

\033[0m сбрасывает его

Он будет отображать в основном что-то похожее (с подчеркиванием под 3):

3 
2 
Смежные вопросы