Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
Страниц: 1 2 [3] 4 5 6 ... 10
 21 
 : 03-03-2025 02:48 
Автор mistek - Последний ответ от mistek
Всем привет!

Хочу представить вам T-Tracker — простой и бесплатный инструмент для управления задачами, который я разрабатываю. Это мой pet-проект, и сейчас он готов к бета-тестированию. Буду рад, если вы попробуете его, поделитесь впечатлениями и поможете сделать его лучше!

T-Tracker — это трекер задач с поддержкой нескольких проектов и гибкими настройками доступа. Подходит как для личного использования, так и для командной работы. Всё максимально просто, но с нужным функционалом.

Что уже работает:
Поддержка нескольких проектов.
Группы пользователей с настройкой прав доступа.
Разные типы задач с приоритетами.
Создание, редактирование, удаление и завершение задач.
Загрузка файлов в задачи.
Календарь с добавлением событий.
Обновление доски задач в реальном времени.
Фильтры на доске задач.
Новости компании.
Архив завершённых задач.
Уведомления пользователей.
Автоматическая проверка обновлений.
Поддержка HTTPS.
Логирование с возможностью отправки логов разработчикам.
Локализация (можно создавать свои переводы).
Интеграция с Git (GitHub, GitLab, Gitea).

Над чем работаю сейчас:
Настройка доступа пользователей к проектам.
Пользовательские поля в задачах.

Планы на ближайшие релизы:
Гибкие правила взаимодействия с задачами.
Интеграция с Telegram.
Связанные задачи (механизм задач и подзадач).
Чат внутри задач.
Индивидуальные права для пользователя (дополнительно к правам группы).
И другие улучшения (список будет расти, предлагайте свои идеи!).


Запуск через Docker:

Страница на DockerHub - https://hub.docker.com/r/mistekdev/t-tracker

Код:
docker run -d --name tasktracker \
  -e ConnectionStrings__DefaultConnection="Host=host.docker.internal;Port=5432;Database=your-db;Username=your-user;Password=your-password" \
  -e Jwt__Key="your-secret-key" \
  -p 8080:8080 \
  -v ./uploads:/app/wwwroot/uploads \
  -v ./cert:/app/cert \
  -v ./keys:/app/keys \
  mistekdev/t-tracker:[version]

Замените your-db, your-user, your-password, your-secret-key и [version] на свои значения.

Требуется PostgreSQL для базы данных.

Переменные среды:
Connection_Strings__Default — строка подключения к PostgreSQL.
Jwt__Key — ключ для JWT-токенов.

Volumes:
/app/wwwroot/uploads — для загружаемых файлов.
/app/cert — сертификаты для HTTPS (файлы должны иметь имена cert.pem и cert.key).
/app/keys — ключи для .NET Core Data Protection.

Пользователь по умолчанию:
Логин: admin
Пароль: admin12345

 22 
 : 03-03-2025 02:10 
Автор mikkijon - Последний ответ от mikkijon
Приветствую Друзья!!!
Наконец-то я нашел литературу(с русским переводом) по созданию БД на PyQt6. PyQt6 для начинающих (Практический подход к графических интерфейсов с PyQt6). Автор Джошуа М. Уиллман
.
 
И вот опять я столкнулся со старой ошибкой....
Цитата
Process finished with exit code -1073741819 (0xC0000005)

И что только я смотрел точки останова, закомментировал оператор выбора If... Then... ,  на папку ге находится файл проекты открыл дал права Администратора (в общем танцы с бубном не танцевал).

Ниже я выкладываю листинг и файл с проектом cделанный на моем любимом PyCharm
Код:
# Импорт необходимых модулей
import sys, random
import sqlite3
from PyQt6.QtSql import QSqlDatabase, QSqlQuery

class CreateEmployeeData:
    """Создаём пример базы данных для проекта
    Класс демонстрирует как подключаться к базе данных, создавать
    запросы, создавать таблицы и записи в этих таблицах"""
    # Создаём соединение с базой данных. Если файл db
    # не существует, будет создан новый файл db
    # Использовать драйвер SQLite версии 3
    #faulthandler.enable()
    database = QSqlDatabase.addDatabase("QSQLITE")
    database.setDatabaseName("accounts.db")
    if not database.open():
        print("Невозможно открыть файл источника данных")
        sys.exit(1) # Код ошибки 1 - означает ошибку

    # create database
    query = QSqlQuery()
    # Стирание содержимого базы данных
    query.exec("DROP TABLE accounts")
    query.exec("DROP TABLE countries")

    query.exec("""CREATE TABLE accounts (
        id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE NULL,
        employee_id INTEGER NOT NULL,
        first_name VARCHAR(30) NOT NULL,
        last_name VARCHAR(30) NOT NULL,
        email VARCHAR(40) NOT NULL,
        department VARCHAR(20) NOT NULL,
        country_id VARCHAR(20) REFERENCES countries(id))""")

    # Позиционная привязка для вставки записей в базу данных
    query.prepare("""INSERT INTO accounts(
              amployee_id, first_name, last_name,
              email, department, country_id)
              VALUES (?, ?, ?, ?, ?, ?)""")
    first_name = ["Emma", "Olivia", "Ava", "Isabella",
                  "Mia", "Charlotte", "Amelia", "Abigail",
                  "Valorie", "Teesha", "Jazzmin", "Liam",
                  "Noah", "William", "James", "Logan",
                  "Benjamin", "Mason", "Elajah", "Oliver",
                  "Lucas", "Michael"]
    last_name = ["Smith", "Johnson", "Williams", "Brown",
                 "Jones", "Miller", "Davis", "Rodriguez",
                 "Martinez", "Hernandez", "Lopez", "Gonzalez",
                 "Wilson", "Anderson", "Thomas", "Taylor",
                 "Moore", "Jackson", "Martin", "Lee",
                 "Perez", "Thompson", "White", "Harris"]

    # Создайте данные для первой таблицы
    employee_ids = random.sample(
        range(1000, 2500), len(first_name))
    countries = {"USA":1, "India":2, "China":3,
                 "France":4, "United Kingdom":5, "Germany":6}

    country_names = list(countries.keys())
    country_codes = list(countries.values())
    departments = ["Production", "R&D", "Marketing", "HR",
                   "Finance", "Engineering", "Managerial"]

    for f_name in first_name:
        l_name = last_name.pop()
        email = (l_name + f_name[0].lower() + "@job.com")
        country_id = random.choice(country_codes)
        dept = random.choice(departments)
        employee_id = employee_ids.pop()
        query.addBindValue(employee_id)
        query.addBindValue(f_name)
        query.addBindValue(l_name)
        query.addBindValue(email)
        query.addBindValue(dept)
        query.addBindValue(country_id)
        query.exec()
    # создайте данные для второй таблицы
    country_query = QSqlQuery()
    country_query.exec("""CREATE TABLE countries (
    id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE NULL,
    country VARCHAR(20) NOT NULL)""")

    country_query.prepare(
        """INSERT INTO countries(country) VALUES (?)""")

    for name in country_names:
        country_query.addBindValue(name)
        country_query.exec()

    print("[NFO] Database succesfully created")

if __name__ == '__main__':
    CreateEmployeeData()
    sys.exit(0)


 23 
 : 28-02-2025 20:52 
Автор mMMdhhdjd - Последний ответ от RXL
Это очень сложный вопрос. Я думаю, вам лучше обратится на форум ардуиньщиков. Я уверен, там вас дадут полный исчерпывающий ответ. Найти такие форумы можно так: https://www.google.com/search?q=arduino+forum
Так же много любителей AVR на radiokot.ru/forum/

 24 
 : 28-02-2025 19:45 
Автор mMMdhhdjd - Последний ответ от mMMdhhdjd
Всем приветик! Занимаюсь написанием лазертака на асемблере, возникла такая проблема, необходимо написать код на единице управления, сделал кодик но в схеме протеуса начинает сама по себе работать в произвольном режиме, хотя должна работать при нажатии на кнопку, у меня кнопка выполняет функцию как фотодиод.
Ломаю голову не понимаю как правильно сделать в коде, при 0 управления все хорошо, когда ставлю единицу управления работает в произвольном режиме, кто знает как исправить данную проблему если не трудно то помогите, сам код и что в протеусе прикреплю ниже. Заранее спасибо огромное!!) рёв в три ручья  Замешательство

#include <avr/io.h>
#define F_CPU 1000000UL
#include <util/delay.h>

// Глобальная переменная для хранения текущего индекса массива
int a = 0;

// Массив значений для вывода на PORTB
int dd[10] = {
0b00000000, 0b00000001, 0b00010010, 0b00010011, 0b00100100,
0b00100101, 0b00110110, 0b00110111, 0b01001000, 0b01001001,
};

int main(void) {
// Настройка PORTC как вход (0x00)
DDRC = 0x00;
// Настройка PORTB как выход (0xff)
DDRB = 0xff;
// Настройка PORTD как выход (0xff) для управления единицей асамбер
DDRD = 0xff;
// Включение подтягивающего резистора на PINC0
PORTC = 0b00000001;

while (1) {
// Вывод значения из массива dd на PORTB
PORTB = dd[a];

// Проверка нажатия кнопки на PINC0
if (0!= (PINC & (1 << 0))) {
// Увеличение индекса массива
a++;
// Задержка для избежания дребезга контактов
_delay_ms(1000);
// Сброс индекса, если он выходит за границы массива
if (a > 9) a = 0;
}

// Управление выводами PORTC в зависимости от значения a
if (a < 5) {
PORTC &= ~(1 << 2); // Выключение PC2
PORTC |= (1 << 3); // Включение PC3
PORTD |= (1 << 0); // Включение PD0 (управление единицей асамбер)
}
if (a > 4 && a <= 8) {
PORTC &= ~(1 << 3); // Выключение PC3
PORTC |= (1 << 1); // Включение PC1
PORTD &= ~(1 << 0); // Выключение PD0
}
if (a > 8) {
PORTC |= (1 << 2); // Включение PC2
PORTC &= ~(1 << 1); // Выключение PC1
PORTD |= (1 << 1); // Включение PD1 (возможно, другое управление асамбером)
}
}

 25 
 : 22-02-2025 14:53 
Автор mikkijon - Последний ответ от mikkijon
Здравствуйте друзья!
  Посоветуйте пожалуйста какой лучше GUI для базы данных.
   Опишу по подробнее ситуацию.....
   Я хочу создать реляционную базу данных где указывается....
Таблица первая "Фамилия"
Таблица вторая "Имя"
Таблица третья "Отчество"
Таблица четвертая "Место рождения"
Таблица пятая Место жительство
На главной форме указаны кнопки
1. Добавить
2.Удалить

Форма "Добавить", поставлены вкладки где первая вкладка добавляет записи, вторая вкладка редактирует но также там стоит запрет на удаление каких либо записей.
Первая вкладка "Добавить записи", поставлены Text
Первый ComboBox добавляет записи в таблицу "Фамилия"
Второй ComboBox добавляет записи в таблицу "Имя"
Третий ComboBox добавляет записи в таблицу "Отчество"
Четвертый ComboBox добавляет записи в таблицу "Место рождения"
Пятый ComboBox добавляет записи в таблицу "Место жительство"
Почему именно ComboBox потому что при вводе пользователем текста Например "Ив" ComboBox ComboBox Автоматически заполнял остальной текст "анов" (как в Excel)
Вкладка "Редактирование записей", есть компонент  Text и Grid. Когда пользователь  открывает эту вкладку Grid сразу selectом выводит все записи из этих таблиц. Компонент Text.. когда пользователь текст например имя, фамилию или другие данные Gride автоматически перескакивает на эту запись
Форма "Удалить"  по молчанию эта кнопка не активирована.  Только пользователь с правами "root" может удалять эти записи.
Я изучал Pyqt6 по книге Прохоренок, там полная ерунда. По моему мнению автор пошел не в ту степь. Если есть какая то толковая литература то посоветуйте пожалуйста.
Надеюсь я подробно описал суть моей проблемы.
Заранее благодарю Вас

 26 
 : 13-02-2025 18:23 
Автор NikVE - Последний ответ от NikVE
Благодарю вас. Не слышал о таком - надо попробовать. А как там с просмотром того, что не нравится одним большим "дядям" в РФ? Есть там возможность что-то подключить, чтобы то, что не любят "большие дяди", можно было бы смотреть?

 27 
 : 11-02-2025 14:44 
Автор NikVE - Последний ответ от darkelf
До сих пор вполне можно использовать. Для выхода в интернет можно пользоваться браузером Supermium - https://github.com/win32ss/supermium.

 28 
 : 31-01-2025 01:21 
Автор mikkijon - Последний ответ от mikkijon
там есть два способа:
1. Табличную часть заполняется только вручную то есть через SQL - запрос
 
Код:
q.exec_("CREATE TABLE category (id INT PRIMARY KEY, catname TEXT);") 
        q.exec_("INSERT INTO category VALUES (1, 'Расходники');")
        q.exec_("INSERT INTO category VALUES (2, 'Носители');")

2 Это тот код который написан выше. Но он работает при условий что в табличной части есть записи

Моя цель - чтобы через программу, пользователь заполнял с нуля. Как и положено в нормальной СУБД

 29 
 : 30-01-2025 17:01 
Автор mikkijon - Последний ответ от RXL
Тут нужно документацию читать. Смотри QtSql.QSqlTableModel и QtWidgets.QTableView. Как работает первый и как он информирует второго, что что-то изменилось.

 30 
 : 30-01-2025 12:33 
Автор mikkijon - Последний ответ от mikkijon
Таблица создана по всем правилам!!!!
Я лично проверил через программу DB Browser for SQLite

Страниц: 1 2 [3] 4 5 6 ... 10
Powered by SMF 1.1.21 | SMF © 2015, Simple Machines