LINUX.ORG.RU

Какой графический стек выбрать для легкого и долговечного приложения

 , ,


0

4

Пытаюсь написать приложение. Пока все не зашло далеко, хочу начать прикручивать какие то гуи к нему. Вопрос в том, что использовать, если хочется: а) легкого и отзывчивого интерфейса, даже если он выглядит как из 90-х, б) кросс платформенности (нужно покрыть минимум луинуксы 2020+ и винду 8.1+), в) чтобы было максимально живуче, г) желательно, чтобы все это можно было реализовать на питоне, т. к. я других ЯП не знаю.

Какие есть варианты? Или я ищу то, чего не существует? Веб не предлагать, я его потыкал по советам (джанго и фласк), ужаснулся и ушел.

Чтобы был какой-то контекст, приложение для работы с БД (sqlite). По сути делает запросы, заполняет, делает аналитику на основе данных по кнопочке «Сделать анализ» и тому подобное. Все локально. Если совсем питон не пойдет тут, скажите, куда смотреть с учетом того, что осваивать это будет в свободное время непрограммист.

Перемещено hobbit из general



Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от uwuwuu

У хрома и фуфла одтинаковое API для написания, те твое расширение будет гарантированно работать в 99% браузеров на всех платформах, включая мобильные. Вот тебе и вебня, но без траханья с ублюдской джангой. Я ее тоже ненавижу хоть и 2 года жизни на ней писал

uwuwuu
()
Последнее исправление: uwuwuu (всего исправлений: 1)

Установи wxpython и посмотри wxdemo. Если устраивает, отлично документированный портабельный питоний тулкит. Есть средства быстрой разработки.

Shadow ★★★★★
()
Ответ на: комментарий от alex1101

SDL2 всего 10 лет, уже готовится SDL3, с SDL1 не так уж и просто перевести на SDL2 приложение, особенно учитывая что отвалились платформы и некоторые функции, так же в SDL постоянно что то ломается (базовое).

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 1)

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

MOPKOBKA ★★★★★
()

Я бы тоже склонился к веб-приложению. Браузеры есть везде, джаваскрипт даже учить не надо, после питона даже поприятнее и погибче будет местами, а может, и не только местами. И осваивать его непрограммисту будет куда как комфортнее – браузер любому хомячку знаком.

Virtuos86 ★★★★★
()
Ответ на: комментарий от raspopov

Передумай. Это задача идеально подходящая для деления на клиент (браузер) и сервер (микросервис или база данных).

Толькое если уже есть опыт. Проще разобраться с qt, чем со стеком вебни.

seiken ★★★★★
()
Ответ на: комментарий от Virtuos86

джаваскрипт даже учить не надо

ну да, только включаешь комп, и он сам за тебя все пишет

И осваивать его непрограммисту будет куда как комфортнее

секунду, так «учить не надо» или «осваивать комфортнее»? И с какой стати там комфорт? Был скриптовый ЯП для простых задач в браузере, на него навернули столько всяких абстракций, что все это вместе стало сложнее питона.

seiken ★★★★★
()

Чтобы был какой-то контекст, приложение для работы с БД (sqlite). По сути делает запросы, заполняет, делает аналитику на основе данных по кнопочке «Сделать анализ» и тому подобное. Все локально. Если совсем питон не пойдет тут, скажите, куда смотреть с учетом того, что осваивать это будет в свободное время непрограммист.

Тут или ncurses или вебня подходят лучше всего.

CrX ★★★★★
()
Ответ на: удаленный комментарий

Речь шла про веб-приложение в сравнении с десктопным.

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

20 строк на питоне:

from tkinter import *
root = Tk()
root.title('Дом')
 
c = Canvas(root, width=240, height=240, bg='white')
c.pack()
 
c.create_rectangle((60, 100), (160, 200), fill='light blue', outline='light blue')
c.create_polygon((40, 100), (110, 40), (180, 100),
                 fill='light blue', outline='light blue')

c.create_oval(180, 10, 230, 60, fill='orange', outline='orange')

for i in range(25):
    c.create_arc(-10+i*10, 160, 170+i*10, 340, 
             start=190, extent=-50, 
             style=ARC, outline='green', 
             width=2)
 
root.mainloop()

51 строка на HTML+CSS+Javascript:

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>Дом</title>
	<style>
        #canvas {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            background-color: white;
            border: 1px solid black;
        }
	</style>
</head>
<body>
	<canvas id="canvas" width="240" height="240"></canvas>
</body>
<script>
    var canvas = document.getElementById('canvas');
    var ctx = canvas.getContext('2d');

    ctx.fillStyle = 'lightblue';
    ctx.strokeStyle = 'lightblue';
    ctx.fillRect(60, 100, 100, 100);
    ctx.beginPath();
    ctx.moveTo(40, 100);
    ctx.lineTo(110, 40);
    ctx.lineTo(180, 100);
    ctx.closePath();
    ctx.fill();
    ctx.stroke();

    ctx.fillStyle = 'orange';
    ctx.strokeStyle = 'orange';
    ctx.beginPath();
    ctx.arc(205, 35, 25, 0, Math.PI * 2);
    ctx.closePath();
    ctx.fill();
    ctx.stroke();

    ctx.strokeStyle = 'green';
    ctx.lineWidth = 2;
    for (var i = 0; i < 25; i++) {
        ctx.beginPath();
        ctx.arc(80 + i * 10, 250, 90,  -Math.PI * 190/180,  -Math.PI * (140)/180);
        ctx.stroke();
    }
</script>
</html>
fsb4000 ★★★★★
()

QT если приложение будет опенсорсным или на лицензии наплевать.

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

theurs ★★
()
Ответ на: комментарий от fsb4000

Ну если для вас это аргумент, то это дело ваше. Но вообще мой коммент удалили со срезанием шкворца, хотя задницей читаю не я 🤷‍♂️, поэтому дальнейшая дискуссия мне в принципе не интересна, извините.

Virtuos86 ★★★★★
()

пытаюсь написать приложение для работы с БД (sqlite). По сути делает запросы, заполняет, делает аналитику на основе данных по кнопочке «Сделать анализ» и тому подобное. Все локально

Зачем? Есть же SQLiteStudio.

posixbit ★★
()
Ответ на: комментарий от fsb4000

Vue, а когда добавится реальная работа реактивность даст свои плоды и количество строк, сложность заметно уменьшатся. Babylon.js тоже довольно прост, если нужно простое 3д, ну а сложный интерфейс без реактивности это трудно и нудно.

<template>
    <v-stage :config="{width:240,height:240}">
      <v-layer>
        <v-rect :config="{x:60,y:100,width:100,height:100,fill:'lightblue'}"/>
        <v-line :config="{points:[40,100,110,40,180,100],closed:true,fill:'lightblue'}"/>
        <v-ellipse :config="{x:205,y:35,width:50,height:50,fill:'orange'}"/>
        <v-arc v-for="i in 25" :key="i" :config="{x:i*10+40,y:250,innerRadius:72,outerRadius:70,angle:-55,fill:'green',clockwise:true,scaleX:-1}"/>
      </v-layer>
    </v-stage>
</template>

<style>
html, body {
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
</style>

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 5)