Найти - Пользователи
Полная версия: Tkinter: Колонки текста
Начало » GUI » Tkinter: Колонки текста
1 2
vanvanov
doza_and
Вы ничего не сказали о том почему не подходит чисто Web технология. Те сервер + броузер для отображения. Такая связка как раз предназначена для показа текста с разным форматированием.
Есть много оболочек, которые показывают онлайн-словари с помощью webkit. Но я не видел ни одной, где можно было бы целиком выделить термин, состоящий из нескольких слов, и с помощью горячих клавиш либо сделать обратный перевод, либо скопировать этот термин. В Stardict, например, нужно зажать левую кнопку мыши, выделить вручную всю фразу и нажать Control-C. У меня же достаточно навести указатель мыши на нужное слово или фразу (ее границы определяются тэгами) и нажать правую кнопку мыши (либо дойти до нужного термина стрелками на клавиатуре и нажать Control-Enter). Это просто удобнее и быстрее. Я просто не в курсе, можно ли такое делать с помощью веб-технологий.
doza_and
vanvanov
Я просто не в курсе, можно ли такое делать с помощью веб-технологий.
Вообще назначение Веб отображение текста в разных видах.

<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<h1>This is a Heading</h1>
<p onmouseover=alert('transl') >This is a paragraph.</p>
</body>
</html>
Только кроме python надо будет еще java script html и кое чего еще подучить.
Rodegast
> Возможно, в этом мне поможет tk.Table?

Вот не понимаю я тягу к библиотеки из счастливых 90-х. Используй современные тулкиты и будет тебе счастье.
P.S. Про Web технологии с клиент-серверами сразу забываем.
vanvanov
Rodegast
Вот не понимаю я тягу к библиотеки из счастливых 90-х. Используй современные тулкиты и будет тебе счастье.
Так сложилось, что стал учить tkinter, написал массу кода с ним и ради одного виджета как-то не хочется переходить на что-то другое. Но при наличии времени на обучение все же перейду на qt.
vanvanov
Для решения вышеобозначенной задачи написал вот такой код.
#!/usr/bin/python3
import tkinter as tk
from time import time
font='LiberationSerif 14'
def add_row(col,row_no):
	root.grid_rowconfigure(row_no,weight=1)
	for i in range(len(col)):
		#tk.Label(root,text=col[i],font=font).grid(row=row_no,column=i,sticky='w',ipadx=7)
		txt=tk.Text(root,font=font,wrap='word')
		txt.insert('1.0',col[i])
		#txt=tk.Entry(root,font=font)
		#txt.insert(0,col[i])
		txt.grid(row=row_no,column=i,sticky='w',ipadx=7)
root=tk.Tk()
article='''Общая лексика	неожиданный поворот дел	попытка	сделка	ход
	ходьба	движение	энергия	мода
	Габон (государство в юго-западной Африке)	присест (Баян)	заход (I cannot do it in one go - Я не могу сделать это за один заход / с первого захода Баян)	готовый к запуску
	готовый к пуску	готовый к эксплуатации	порция вина	порция кушанья
	употребление оборота	собираться сделать (что-л.)	бросок (в спортивных играх, кегельбане)	глоток (вина)
	порция (кушанья)	приступ (о болезни)	вести (о дороге, пути)	стать (стать кем-либо, стать каким-либо // A cop gone bad / We've gone green. / The Merciless is a story of good girls gone evil. 4uzhoj)
Австралийский сленг	принятое решение			
Американизм	с собой (fast food service scardanelli)			
Американизм	try (Let me have a go at solving the problem)			
Военный термин	"начинайте передачу"			
Военный термин	все в порядке	готов	о'кей	поехали
Интернет	переход (кнопка на вебсайте gconnell)			
Контроль качества	проход (надпись на приёмной стороне предельного калибра)			
Макаров	go (в сочетании с последующим герундием выражает действие, соответствующее значению герундия)			
'''
start=time()
article=article.splitlines()
for i in range(len(article)):
	article[i]=article[i].split('\t')
end=time()
print('Этап 1 завершен за %s сек.' % str(end-start))
start=time()
for i in range(len(article)):
	root.grid_columnconfigure(i,weight=1)
	add_row(article[i],i)
end=time()
print('Этап 2 завершен за %s сек.' % str(end-start))
root.mainloop()
Подскажите, пожалуйста, почему формирование виджета занимает аж 1,3 секунды? Кроме того, как сделать так, чтобы ячейка была видна полностью?
vanvanov
Rodegast
Вот не понимаю я тягу к библиотеки из счастливых 90-х.
Tkinter на 4 года младше Qt.
Используй современные тулкиты и будет тебе счастье.
Попробовал PyQt. Счастье, видимо, заключается в том, чтобы перестать отлаживать старую лажу и начать отлаживать новую. Да, не спорю, технология мощная, но, блин, почему все эти движки, будь то Qt или Tkinter, требуют столько времени на обучение и отладку? Я реально от всего времени, уделенного программированию, потратил половину на GUI.
P.S. Про Web технологии с клиент-серверами сразу забываем.
Оказалось, что самый простой путь - tkinterhtml. Генерируем html-код, рисующий таблицу и отображаем. Да и быстрее это прогружается, чем табличные виджеты или label, хоть в Qt, хоть в Tkinter.
Rodegast
>> Вот не понимаю я тягу к библиотеки из счастливых 90-х
> Tkinter на 4 года младше Qt.

А вот это не имеет никакого значения. Речи идёт не о том кто-кого старше/моложе, а о технологическом уровне.

> Попробовал PyQt. … Я реально от всего времени, уделенного программированию, потратил половину на GUI.
А никто и не говорил что будет просто.

>> P.S. Про Web технологии с клиент-серверами сразу забываем.
> Генерируем html-код, рисующий таблицу и отображаем.

У тебя задействован веб-сервер?
vanvanov
Rodegast
А никто и не говорил что будет просто.
Послушать некоторых на форумах - товарищей, которые на VS или Delphi делают формочки, они и за программистов не считают.
У тебя задействован веб-сервер?
Я пишу клиент для одного сервера, предоставляющего доступ к словарям. Нет, моя машина не веб-сервер, если это имеется в виду.
doza_and
Rodegast
А никто и не говорил что будет просто.
vanvanov
Я реально от всего времени, уделенного программированию, потратил половину на GUI.
Интересно а сколько вы его всего потратили?

Наверное от задачи зависит. У нас в типичном проекте расклад:
1 год разработка алгоритма и общение с заказчиком
1 месяц программирование
1 день GUI

Понятно, что на специалистов которые только GUI могут делать странно смотреть.
И понятно что GUI это реально просто!!! (Мы правда рисуем GUI типа черных квадратов а не Девятый вал).
vanvanov
doza_and
Интересно а сколько вы его всего потратили?
Если считать только периоды более-менее активного программирования/обучения, то занимаюсь им лет 5. GUI достаточно плотно стал осваивать с 2013.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB