LINUX.ORG.RU

Программы/библиотеки для быстрого наброса веб страниц.

 , ,


1

1

Доброе время суток) Есть ли нормальные программы, может быть библиотеки для быстрой вёртски html. Мне нужно быстренько накидывать кнопочки , инпутбоксы. Типо накидываю кнопку и даю ей функцию из js сразу. Может есть какие то библиотеки такие. Может есть что то по типо qt designer. Вы меня спросите, а почему я не использую qt? Я его просто не уважаю. Я однажды чуть не блеванул из-за самого вида qt.

React.

import { useState } from "react";
import { useForm } from "react-hook-form";
import Header from "./Header";

export function App() {
  const { register, handleSubmit } = useForm();
  const [data, setData] = useState("");

  return (
    <form onSubmit={handleSubmit((data) => setData(JSON.stringify(data)))}>
      <Header />
      <input {...register("firstName")} placeholder="First name" />
      <select {...register("category")}>
        <option value="">Select...</option>
        <option value="A">Option A</option>
        <option value="B">Option B</option>
      </select>
      <textarea {...register("aboutYou")} placeholder="About you" />
      <p>{data}</p>
      <input type="submit" />
    </form>
  );
};
anonymous-angler ★☆
()
Ответ на: комментарий от enot_obrmot

Сделай интерфейс одной картинкой, нарисовать можно в гимпе =) Картинка поверх сетки, а куда мышка нажалась узнаёшь из положения сетки, на сетке в ячейках пометки ячейка/ки принадлежит кнопке или нет хехехе. Вот вы смеяться все будете, а я так первое графическое приложение для себя написал, оно состояло только из кнопок и рожицы в серединке на SDL2)))) Жаль потерялась.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от enot_obrmot

Тебе проще будет выучить Си и использовать SDL2 + Nuklear. Чем нырять в клоаку веба.

а как ты сделаешь чекбокс или inputbox там?

Просто. Без всего только Си + SDL2 для вывода на экран и получения ввода. У тебя есть окно для рисования. Допустим для простоты его размер статичный 800 на 600. Так же для простоты возьмём чекбокс.

Представим его в виде двух картинок, активно/неактивно. Загрузим эти картинки в память. На нашем окне выберем место где чекбокс будет находится. Это например верхний правый угол. Для простоты обозначим что размер чекбокса тоже статичный например 50 на 50 пикселей. Средствами SDL2 рисуем картинку чекбокса в том месте где хотим. Заводим переменную хранящую состояние, в зависимости от состояние передаём SDL2 нужную картинку из двух. Теперь средствами SDL2 получаем координату курсора мышки и события нажатия.

Наш чекбокс будет иметь переменные

struct vec2
{
  int x;
  int y;
}

bool checkbox_status = false;

struct vec2 top_left; //положение нашего чекбокса по икс/игрек
размер окна по икс минус ширина чекбокса и высота окна от нуля + размер чекбокса по игреку.
struct vec2 bottom_right; // размер нашего чекбокса как положение + размер

При событии нажатия мышки мы проверяем её координата больше top_left.x и top_left.y и меньше bottom_right.x и bottom_right.y значит мышка была нажата в области где находится наш чекбокс. Меняем статус checkbox_status и по изменению этого статуса меняем картинку которая отрисовывается плюс другую логику привязанную к состоянию статуса чекбокса, что-то включаем и выключаем.

Проверяем наличие мышки в области чекбокса, а так же статус её нажатия, а так же состояние checkbox_status каждый раз, всегда и постоянно. На выходе у тебя чекбокс который чекбоксится(меняется картинка), реагирует на мышку и что-то делается при смене его статуса.

Это я хоть и примитивно описал всё, но этого уже достаточно для первых наколенных поделок. Где ты всё делаешь сам, а не магией. Оно даст понимание как это всё в целом работает, конечно часто всё работает совсем не так, но это не важно. В случае GTK+ или Nuklear я просто использую API и пишу почти дословно, "тут кнопка нарисуй с текстом «лол кек» " и всё.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от enot_obrmot

Садись и учи. Можешь скачать примеры Nuklear, скомпилировать, посмотреть, потом открыть 1 файл исходника что-то поменять и снова посмотреть что получилось. Да, тупо тыкать палочкой наугад, ничего в этом такого нету.

Потом начать уже играть с языком прочесть и выполнить примеры из книги K&R. Спрашивать советы тут на лоре по поводу непонятного. Написать например консольную программу которая будет задавать вопросы и нужно правильно отвечать. Ну и так далее. В любом случае придётся учить и экспериментировать хоть с вебом, хоть с сишкой, хоть с чем.

Можешь попробовать pytnon выучить, он говно ибо я неосилил, но миллионы людей его любят, гуй на нём пишется очень легко ибо есть привязки к qt/gtk/иное и запускаться он будет везде (ну почти)

Короче ничего навязывать не буду.

Можешь ещё попробовать lua выучить базово язык очень простой и использовать love2d твоё приложение тогда можно будет хоть на телефоне хоть на ПК запускать. Можешь Godot осилить, в нём тоже можно делать кроссплатформенный гуй и полноценные приложения, но там тоже свой язык.

Короче возможностей у тебя тонна, но чего чего, а веб на ПК в качестве приложений это днище донное, за исключением может некоторым, а так дно.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

А когда тебе понадобится поддержка grid/flex, или разные лэйауты для разных брейкпоинтов (дисплеи 10 разных размеров с разной ориентацией), или там ситуация когда текст в одну строку не вмещается и его нужно выровнять так или иначе? Тоже за пару дней сверстаешь, или только через год вывалишь закостыленное нечитаемое месиво из хаков для всех этих случаев? Вот, к сожалению, по этой причине веб и победил. Он предоставляет готовые решения для всех этих кейсов.

anonymous-angler ★☆
()
Последнее исправление: anonymous-angler (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

Python я знаю. Но он кажется очень детским из-за синтаксиса без фигурных скобок. Но вообще вы едиственный человек, который дал хороший ответ, с пояснением. А что за книга K&R? Какой автор?

enot_obrmot
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

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

anonymous-angler ★☆
()
Ответ на: комментарий от anonymous-angler

Хоспади боже мой. Любой вектор для отрисовки перегоняется в растр в любом случае. Повторяю ЭТО ТУПОЙ ПРИМЕР ТУПОГО ПРИМЕРА НА ОСНОВЕ ЮМОРНОГО ВОСПОМИНАНИЯ О МОИХ ТУПЫХ ПЕРВЫХ ПОПЫТКАХ ПАГРАМИРОВАТЬ чё ты какой сурьёзный. Яж там в самом начале сказал про это. Ёпсиль =)

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от enot_obrmot

glfw

ненужно, он может вообще на чистом Xorg рисовать. Метод отрисовки определяет зависимости, там выбор большой чем рисовать в итоге. Достаточно выбрать SDL2 бекенд как зависимость и всё.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от enot_obrmot
Package glfw3 was not found in the pkg-config search path.
Perhaps you should add the directory containing `glfw3.pc'
to the PKG_CONFIG_PATH environment variable
Package 'glfw3', required by 'virtual:world', not found
rm -rf bin
cc -std=c99 -Wall -Wextra -pedantic -Wno-misleading-indentation -Wno-shift-negative-value -O2 -o bin/file_browser file_browser.c  -lGL -lm -lGLU -lGLEW
file_browser.c:15:10: фатальная ошибка: GLFW/glfw3.h: Нет такого файла или каталога
   15 | #include <GLFW/glfw3.h>
      |          ^~~~~~~~~~~~~~
компиляция прервана.
make: *** [Makefile:34: file_browser] Ошибка 1
enot_obrmot
() автор топика
Ответ на: комментарий от enot_obrmot

Там должен быть каталог demo вроде, и внутри ещё много каталогов с разными бекендами. Nuklear сам ничего не рисует он использует один из множества вариантов бекендов для рисования, там и выбери сдл иксы и ещё чёнить

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от enot_obrmot

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

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

Есть одна проблема, код выглядит очень страшным. Слишком много всего в начале. Хотя главные там всего 5 строк…. Почему так всё сложно? Из всего кода за передачу комманды отображения окна отвечают 5 строк, код на 200 строк.

enot_obrmot
() автор топика