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

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
Страниц: [1] 2 3 4 ... 10
 1 
 : 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 Это тот код который написан выше. Но он работает при условий что в табличной части есть записи

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

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

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

 4 
 : 30-01-2025 11:53 
Автор mikkijon - Последний ответ от RXL
Таблицу сперва надо создать, прежде чем в нее вставлять строки. Создание таблицы включает задание имени таблицы, а так же имен и типов колонок. Для SQLite можно не задавать типы, они будут по умолчанию строками.

 5 
 : 30-01-2025 09:41 
Автор mikkijon - Последний ответ от mikkijon
Приветствую Друзья!!!
   Объясните пожалуйста мне, один нюанс в табличной модели. Я уже который день голову ломаю
Начну с самого начала вернувшись обратно к своей любимой теме, "Создание СУБД"..... Изучаю я по книге: Прохорёнок Н.А. Дронов В.А. - Python 3 и PyQt6 Разработка приложений.
там указан листинг:
Код:
from PyQt6 import QtCore, QtGui, QtWidgets, QtSql
import sys
def addRecord():
    if stm.value("category") == []:
        # Вставляем пустую запись, которую пользователь сможет ввести нужные данные
        stm.insertRecord(stm.rowCount())

def deleteRecord():
    # Удаляем запись из модели
    stm.removeRecord(tv.currentIndex().row())
    stm.select

app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget()
window.setWindowTitle("Добавление и удаление записи")
# Устанавливаем соединение с базой данных
con = QtSql.QSqlDatabase.addDatabase("QSQLITE")
con.setDatabaseName("data.sqlite")
con.open()
# Создаем модель
stm = QtSql.QSqlTableModel(parent=window)
stm.setTable("category")
stm.sort(1, QtCore.Qt.SortOrder.AscendingOrder)
stm.select()
# Задает заголовки
stm.setHeaderData(0, QtCore.Qt.Orientation.Horizontal, "Номер записи")
stm.setHeaderData(1, QtCore.Qt.Orientation.Horizontal, "Категория")
vbox = QtWidgets.QVBoxLayout()
tv = QtWidgets.QTableView()
tv.setModel(stm)
tv.setColumnWidth(1, 60)
tv.setColumnWidth(2, 150)
vbox.addWidget(tv)
btnAdd = QtWidgets.QPushButton("&Добавить запись")
btnAdd.clicked.connect(addRecord)
vbox.addWidget(btnAdd)
btnDel = QtWidgets.QPushButton("&Удалить запись")
btnDel.clicked.connect(deleteRecord)
vbox.addWidget(btnDel)
window.setLayout(vbox)
window.resize(400, 250)
window.show()
sys.exit(app.exec())
  Проблема в том, что если таблице нет записей то при нажатии на кнопке, "&Добавить запись", таблица не переходит в режим редактирования и вsходит сообщение:
Цитата
Process finished with exit code -1073740791 (0xC0000409).
И как не меняй функцию:
Цитата
"addRecord"

 if stm.value("category") == []:
        # Вставляем пустую запись, которую пользователь сможет ввести нужные данные
        stm.insertRecord(stm.rowCount())
или
 if stm.Null == True:
        # Вставляем пустую запись, которую пользователь сможет ввести нужные данные
        stm.insertRecord(stm.rowCount())
все равно выходит сообщение:
Цитата
Process finished with exit code -1073740791 (0xC0000409)

 6 
 : 14-01-2025 18:52 
Автор Boriska - Последний ответ от Boriska
на MFC делал так,
Код:
класс моей кнопки
class ElipsBtn :
    public CButton
{
protected:
    afx_msg void PreSubclassWindow();
    DECLARE_MESSAGE_MAP()
};

void ElipsBtn::PreSubclassWindow()
{
    CButton::PreSubclassWindow();

    // Устанавливаем элиптический регион для кнопки
    CRect rect;
    GetClientRect(&rect);

    CRgn rgn;
    rgn.CreateEllipticRgn(0, 0, rect.Width(), rect.Height());
    SetWindowRgn(rgn, TRUE);
}

//код вставленный в BOOL CMyElipsWndDlg::OnInitDialog()

//эта часть делает окно элипсным
CRect rect;
GetClientRect(&rect);
CRgn rgn;
rgn.CreateEllipticRgn(10, 40, rect.Width(), rect.Height());
SetWindowRgn(rgn, TRUE);

//эта должна делать кнопку элипсной, но не делает
// Привязываем вашу кнопку к пользовательскому классу
CButton* pButton = (CButton*)GetDlgItem(IDC_ELIPS_BTN); // ID вашей кнопки
if (pButton)
{
m_btnCustom.SubclassWindow(pButton->GetSafeHwnd());
}

 7 
 : 14-01-2025 13:15 
Автор WWX - Последний ответ от Ochkarik
WWX,
Цитата
To edit the Registry and disable paging kernel-mode stacks

Click Start > Run and type regedit.
In the left pane of the Registry Editor, navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager.
In the right pane, right‐click GlobalFlag and select Modify.
With Base Hexadecimal, type value 80000, which corresponds to FLG_DISABLE_PAGE_KERNEL_STACKS.
Click OK and exit the Registry Editor.
Reboot the guest system for this change to take effect.
https://learn.microsoft.com/ru-ru/windows-hardware/drivers/debugger/gflags-flag-table
оказывается. чем люблю такие вопросы - сам образовываюсь)))

 8 
 : 14-01-2025 12:54 
Автор WWX - Последний ответ от WWX
Ну, то что локальные переменные размещаются на стеке я знал, а вот всё остальное... не знал. Буду знать – одной параноей меньше.
Спасибо в любом случае.
В общем-то иначе вообще не понятно как жить – например, обработчики прерываний (ISR'ы) тогда бы не могли безопасно иметь своих локальных переменных, учитывая на каких IRQL им приходится выполняться.
Насчёт флага, я так понял, что это флаг некоторой тулзы для отладки или типа того... Могу ошибаться...

 9 
 : 12-01-2025 06:49 
Автор Boriska - Последний ответ от Boriska
MFC, API. Вчера научился делать элипсное окно из диалога на MFC при помощи региона, а вот кнопки на нем не удалось сделать элипсные. И нарыл вот у вас статью по компонентам https://club.shelek.ru/viewart.php?id=318#post_live-menu прочту.

А насчет C#, там я компоненты делал и все получалось, но были они все только прямоугольные, хотелось бы тоже "скруглять". Да на Windows Forms.

 10 
 : 12-01-2025 03:47 
Автор Boriska - Последний ответ от Джон
Привет, эммм не совсем понятно, так на (в) чём ты хочешь их делать? MFC или таки на С#? Если последнее, то Windows Forms? WPF?

зы я понимаю, что вопрос задан в теме MFC, но всё-таки

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