Существует ли библиотека Python, которая позволяет создавать пользовательские интерфейсы, не пишущий много кода?

Очевидная рекурсия, кажется, работает очень хорошо, по крайней мере, на ваших примерах:

case class Node[A](a: A, children: List[Node[A]])
def trieForest[A](lists: List[List[A]]): List[Node[A]] = {
  lists.filter(_.nonEmpty).groupBy(_.head).map { 
    case (k, vs) =>
    Node(k, trieForest(vs.map(_.tail)))
  }.toList
}

def fromPaths(paths: List[String]): Node[String] = {
  // assumes that there is only one tree in the 
  // top-level forest.
  trieForest(paths.map(_.split("/").toList)).head
}

println(fromPaths(List("a/b/x", "a/b/y", "a/c", "a/c/d")))

Печать (до отступа):

Node(a, List(
  Node(b,List(
    Node(y,List()), 
    Node(x,List())
  )),
  Node(c,List(
    Node(d,List())
  ))
))

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

7
задан paniq 22 March 2009 в 22:49
поделиться

8 ответов

Помимо тех уже упомянул, что я могу добавить:

Я никогда не использовал ни одного из них также - никакие рекомендации, но, если это имеет значение, я использовал по крайней мере 2 сложных программы, созданные непосредственно на pygtk, который работал и в Windows и в Linux.

Я думаю, что новозеландец является единственным из них с испеченным в поддержке дб (через интерфейс с SQLAlchemy, SQLObject или Storm), но я был бы удивлен, не могли ли Вы использовать один из тех ORM's ни в одной из других платформ.

5
ответ дан 6 December 2019 в 12:55
поделиться

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

Если Вы хотите больше объектно-ориентированного подхода для обработки SQL, Вы могли бы изучить ORM-ориентированное решение (например, SQLAlchemy).

4
ответ дан 6 December 2019 в 12:55
поделиться

Дабо создается сверху wxPython, таким образом, Вы не можете предпочесть его, но он разработан, чтобы помочь связать GUI с базой данных, таким образом, я рекомендовал бы проверить его, если Вы уже не имеете. В частности, это имеет хорошие средства для связи виджетов к данным и обработки большого количества общих падежей разработки GUI.

4
ответ дан 6 December 2019 в 12:55
поделиться

wxGlade может помочь, хотя я не использовал его сам, таким образом, я не говорю на основе опыта.

У Конструктора удава, по-видимому, есть разработчик wxPython GUI в нем, и существует также PythonCard, хотя разработка на этих двух проектах, кажется, остановилась.

1
ответ дан 6 December 2019 в 12:55
поделиться

Черты могли бы быть хорошим вариантом для Вас. http://code.enthought.com/projects/traits/docs/html/TUIUG/index.html

AS, простой, поскольку это должно отобразить UI на объект, это не кажется слишком неправдоподобным для слияния SQLAlchemy для персистентности.

1
ответ дан 6 December 2019 в 12:55
поделиться

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

0
ответ дан 6 December 2019 в 12:55
поделиться

Существует хорошая книга по wxPython, "wxPython в Действии", которое не может быть сказано для некоторых из других решений. Никакой удар по другим. У меня была разработка успеха с wxPython в прошлом, и это идет с большим набором демонстрационных приложений с исходным кодом, у которого можно одолжить подробно.

Лучший разработчик UI, которого я нашел для wxPython приложений, является коммерческим, Антемий DialogBlocks. Это одним из wxPython программистов и стоит денег. Другие решения для дизайна UI включают wxGlade (я нашел, что это применимый, но не featureful) и Конструктор Удава (не использовали его). Крыло IDE могло бы также иметь тот. Редактор Python Stani связывает wxGlade, я верю. Существует много других проектов, которые действительно не работают или довольно стары.

Насколько автоматизация SQL идет, как другая отвечающая сторона говорит, я посмотрел бы на алхимию SQL, но кривая обучения для небольшого приложения могла бы быть слишком много, и Вы будете более обеспечены просто движение прямо к odbc. Лучший odbc API является тем, используемым Django, pyodbc.

Это было некоторое время, так как я разработал с этими инструментами, таким образом, может быть что-то более новое для каждого, но в то время, когда они были определенно лучшим среди аналогов, по-моему.

1
ответ дан 6 December 2019 в 12:55
поделиться

Хорошо, это нестандартное решение, но напишите себе генератор кода. Я делал это несколько раз, используя Мако . Таким образом, в моем случае я автоматически проверяю таблицу, какие столбцы она содержит, и набирает и генерирует классы из этого. Это больше предварительная работа, но она делает именно то, что вы хотите, и ее можно использовать в последующих проектах.

0
ответ дан 6 December 2019 в 12:55
поделиться
Другие вопросы по тегам:

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