Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Sending parameters with click event
QtWS25 Last Chance

Sending parameters with click event

Scheduled Pinned Locked Moved Solved General and Desktop
5 Posts 4 Posters 273 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • yy_pc_programmerY Offline
    yy_pc_programmerY Offline
    yy_pc_programmer
    wrote on last edited by
    #1

    Hello, my codes are below.
    I want to send a parameter to the addpage class when a click event is triggered. How can I do that? Thanks
    mainpage.h file:

    #ifndef MAINPAGE_H
    #define MAINPAGE_H
    
    #include "giriswidget.h"
    #include "btnitemdelegate.h"
    #include "addpage.h"
    #include "detailpage.h"
    #include "update.h"
    #include <QDialog>
    #include <QTableView>
    #include <QSql>
    #include <QSqlDatabase>
    #include <QSqlQueryModel>
    #include <QSqlQuery>
    #include <QStandardItemModel>
    #include <QPushButton>
    #include <QModelIndex>
    
    namespace Ui {
    class MainPage;
    }
    
    class MainPage : public QDialog
    {
        Q_OBJECT
    
    public:
        explicit MainPage(QWidget *parent = nullptr);
        ~MainPage();
        void connectDb();
    
    
        void updateTableView();
        void myview_stil_layout();
    
    public slots:
        void updateBtnClickedSlot(const QModelIndex &mindex);
        void deleteBtnClickedSlot(const QModelIndex &mindex);
        //void addBtn_Page_Clicked(); //addpage
        void sendParameterToAddPage(QModelIndex &mindex);
        void detailBtn_Page_Clicked();
        void clickedLogOutBtn_Clicked();
        //int sevkHesaplama();
    
    public:
        Ui::MainPage *ui;
    
        //AddPage *addpg;
        DetailPage *detail;
        QSqlDatabase mydb;
        QSqlQueryModel *queryModel;
        QSqlQueryModel *queryModelDelete;
        QStandardItemModel *itemModelBtn;
        QPushButton *deleteBtn;
        QPushButton *updateBtn;
        const int ID={};
        int objID;
    };
    
    #endif // MAINPAGE_H
    

    mainpage.cpp file:

    #include "mainpage.h"
    #include "ui_mainpage.h"
    #include "giriswidget.h"
    #include "btnitemdelegate.h"
    #include "addpage.h"
    #include "detailpage.h"
    #include "update.h"
    #include <QMessageBox>
    #include <QDebug>
    #include <QSqlError>
    #include <QHeaderView>
    #include <QSqlQueryModel>
    #include <QStringList>
    #include <QWidget>
    #include <QModelIndex>
    #include <QObject>
    
    MainPage::MainPage(QWidget *parent) : QDialog(parent), ui(new Ui::MainPage)
    {
        ui->setupUi(this);
    
        connectDb();
    
        updateTableView();
    
        connect(ui->logOutBtn,&QPushButton::clicked,this,&MainPage::clickedLogOutBtn_Clicked);
    
        AddPage *m_addPg = new AddPage(objID);
    
        connect(m_addPg,&AddPage::add_Data_Clicked,this,&MainPage::addBtn_Page_Clicked);
    
        connect(ui->detailBtn,&QPushButton::clicked,this,&MainPage::detailBtn_Page_Clicked);
    
        btnItemDelegate *btnDlgte = new btnItemDelegate("delete",ui->myView);
        btnItemDelegate *btnUpdate = new btnItemDelegate("guncelle",ui->myView);
    
        connect(btnDlgte, &btnItemDelegate::clickedDeleteBtnSignal, this, &MainPage::deleteBtnClickedSlot);
        connect(btnUpdate, &btnItemDelegate::clickedUpdateBtnSignal,this, &MainPage::updateBtnClickedSlot); //updatePage
    
        detail = new DetailPage();
    
        queryModel->insertColumn(queryModel->columnCount());
        queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Sil"));
    
        ui->myView->setItemDelegateForColumn(queryModel->columnCount()-1,btnDlgte); //ok
    
        queryModel->insertColumn(queryModel->columnCount());
    
        queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Güncelle"));
    
        ui->myView->setItemDelegateForColumn(queryModel->columnCount()-1,btnUpdate); //ok
    
        ui->myView->setSelectionBehavior(QAbstractItemView::SelectItems);
        ui->myView->setModel(queryModel);
    }
    
    void MainPage::connectDb()
    {
        mydb = QSqlDatabase::addDatabase("QMYSQL");
    
        mydb.setHostName("localhost");
        mydb.setDatabaseName("krn_iplikler");
        mydb.setUserName("root");
        mydb.setPassword("root");
        mydb.setPort(3306);
        mydb.open();
    
        if (mydb.isOpen())
        {
            qDebug()<<"db connection is succesfully";
        }
        else {
            QMessageBox::information(this,"Connection Failed.!","Database connection failed!!!!",QMessageBox::Cancel);
            qDebug()<<mydb.lastError().text();
        }
    }
    
    void MainPage::addBtn_Page_Clicked()
    {
        sendParameterToAddPage(mindex);
    }
    
    void MainPage::sendParameterToAddPage(QModelIndex &mindex) //addpage sınıfına parametre gönderme
    {
        if (mindex.isValid())
        {
            int rowIndex = mindex.row();
            qDebug() << "ekle butonu tıklandı. indeksi: " << rowIndex;
    
            auto objID = queryModel->data(queryModel->index(rowIndex, 0), Qt::DisplayRole).toInt();
            AddPage *addpag = new AddPage(objID);
            connect(addpag , &AddPage::veriEklendi,this,[=](){
                qDebug()<<"tabloya eklendi";
                queryModel->setQuery("SELECT * FROM iplikler",mydb);
                queryModel->insertColumn(queryModel->columnCount());
                queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Sil"));
                queryModel->insertColumn(queryModel->columnCount());
                queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Güncelle"));
                ui->myView->setModel(queryModel);
                QHeaderView *horizontalHeader = ui->myView->horizontalHeader();
                horizontalHeader->setResizeContentsPrecision(QHeaderView::ResizeToContents);
            });
            addpag->setModal(true);
            addpag->setWindowTitle("Add Page");
            addpag->setWindowIcon(QIcon(":/icon/icons/add.png"));
            addpag->setWindowFlags( Qt::WindowMinimizeButtonHint);
            addpag->adjustSize();
            addpag->setFixedSize(1000,150);
            addpag->show();
        }else {
            qDebug()<<"addpage error index";
        }
    }
    
    void MainPage::detailBtn_Page_Clicked()
    {
        detail->setWindowTitle("Details Page");
        detail->setWindowIcon(QIcon(":/icon/icons/detail.png"));
        detail->setWindowFlags( Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint);
        detail->setModal(true);
        detail->adjustSize();
        detail->setFixedSize(600,400);
        detail->show();
    }
    
    void MainPage::clickedLogOutBtn_Clicked()
    {
        this->close();
        GirisWidget *giris = new GirisWidget();
        giris->setWindowTitle("Login Page");
        giris->adjustSize();
        giris->setFixedSize(450,350);
        giris->setWindowIcon(QIcon(":/icon/icons/login.png"));
        giris->setWindowFlags( Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint);
        giris->show();
    }
    
    void MainPage::updateTableView()
    {
        queryModel = new QSqlQueryModel();
        queryModel->setQuery("SELECT * FROM iplikler",mydb);
    
        ui->myView->setModel(queryModel);
    
        myview_stil_layout();
    }
    
    void MainPage::myview_stil_layout()
    {
        if (!queryModel)
        {
            return;
        }
    
        QStringList headernames;
        headernames <<"Sıra No"<<"Boyanan Miktar"<<"Cari Kodu"<<"Cari Adı"<<"Depodan Rezerv"
                    <<"İplik Kodu"<<"İplik Adı"<<"Miktar"<<"Onay Zamanı"<<"Özel Notu"<<"Renk Kodu"<<"Renk Adı"<<"Sevk Edilecek Miktar"<<"Sevk Miktarı";
    
        for (int i = 0; i < headernames.size(); ++i) {
            queryModel->setHeaderData(i, Qt::Horizontal, headernames[i]);
        }
    
        ui->myView->setStyleSheet("QHeaderView::section { background-color: lightblue ; color: black; font-weight: bold;}");
        ui->myView->setModel(queryModel);
    
        ui->myView->verticalHeader()->setVisible(false);
    
        QHeaderView *horizontalHeader = ui->myView->horizontalHeader();
        horizontalHeader->setResizeContentsPrecision(QHeaderView::ResizeToContents);
    }
    
    void MainPage::updateBtnClickedSlot(const QModelIndex &mindex)
    {
        if (mindex.isValid())
        {
            int rowIndex = mindex.row();
            qDebug() << "Güncelle butonuna tıklandı. Satır indeksi: " << rowIndex;
    
            auto itemID = queryModel->data(queryModel->index(rowIndex, 0), Qt::DisplayRole).toInt();
            Update *update = new Update(itemID); //id ve model i update e iletme
            connect(update , &Update::verilerGuncellendi,this,[=](){
                qDebug()<<"tablo guncellendi";
                queryModel->setQuery("SELECT * FROM iplikler",mydb);
                queryModel->insertColumn(queryModel->columnCount());
                queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Sil"));
                queryModel->insertColumn(queryModel->columnCount());
                queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Güncelle"));
                ui->myView->setModel(queryModel);
                QHeaderView *horizontalHeader = ui->myView->horizontalHeader();
                horizontalHeader->setResizeContentsPrecision(QHeaderView::ResizeToContents);
            });
            update->setWindowTitle("Update Page");
            update->setWindowIcon(QIcon(":/icon/icons/updatepage.png"));
            update->setWindowFlags( Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint);
            update->setModal(true);
            update->setFixedSize(1000,150);
            update->show();
        }else {
            qDebug()<<"error index";
        }
    }
    
    void MainPage::deleteBtnClickedSlot(const QModelIndex &mindex)
    {
        if (mindex.isValid())
        {
            int rowIndex = mindex.row();
            qDebug() << "delete butonuna tıklandı. indeksi: " << rowIndex;
    
            QModelIndex modelIndex = queryModel->index(rowIndex,0);
            int ID = queryModel->data(modelIndex,Qt::DisplayRole).toInt();
    
            QSqlQuery deleteQuery;
            deleteQuery.prepare("DELETE FROM iplikler WHERE ID = :ID ");
            deleteQuery.bindValue(":ID",ID);
    
            if (deleteQuery.exec()) {
                qDebug()<<"veri silindi";
                queryModel->setQuery("SELECT * FROM iplikler",mydb);
                queryModel->insertColumn(queryModel->columnCount());
                queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Sil"));
                queryModel->insertColumn(queryModel->columnCount());
                queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Güncelle"));
                ui->myView->setModel(queryModel);
            }
            else{
                qDebug() << "Satır silinirken hata oluştu:" << deleteQuery.lastError().text();
            }
        }else {
            qDebug()<<"error index";
        }
    }
    
    /*int MainPage::sevkHesaplama()
    {
    }*/
    
    MainPage::~MainPage()
    {
        delete ui;
    }
    

    addpage.h file:

    #ifndef ADDPAGE_H
    #define ADDPAGE_H
    
    #include <QDialog>
    #include <QSqlQuery>
    #include <QSqlQueryModel>
    
    namespace Ui {
    class AddPage;
    }
    
    class AddPage : public QDialog
    {
        Q_OBJECT
    
    public:
        explicit AddPage(int objID, QWidget *parent = nullptr);
        ~AddPage();
    
        bool lnedit_cntrl();
        void add_Data_Clicked();
        bool insertData(const QString &tablename,const QMap<QString, QString>& iplikData);
        void iptalBtn_clicked();
    
    signals:
        void addData();
        void veriEklendi();
    
    private:
        Ui::AddPage *ui;
        QSqlQueryModel *myQueryModel;
        QSqlQueryModel *queryModel;
        QSqlQuery *myQuery;
        int n_ID;
    };
    
    #endif // ADDPAGE_H
    

    addpage.cpp file:

    #include "addpage.h"
    #include "ui_addpage.h"
    #include <QDebug>
    #include <QMessageBox>
    #include <QSqlError>
    #include <QHeaderView>
    
    AddPage::AddPage(int objID, QWidget *parent) :
        QDialog(parent),
        n_ID(objID),
        ui(new Ui::AddPage)
    {
        ui->setupUi(this);
    
        myQueryModel = new QSqlQueryModel();
        myQuery = new QSqlQuery();
    
        connect(ui->kaydetBtn,&QPushButton::clicked,this,&AddPage::add_Data_Clicked);
        connect(ui->iptalBtn,&QPushButton::clicked,this,&AddPage::iptalBtn_clicked);
    }
    
    AddPage::~AddPage()
    {
        delete ui;
    }
    
    bool AddPage::lnedit_cntrl()
    {
        QList<QLineEdit*> lineedits {ui->iplikkodLnedit,ui->ipliknameLnedit,ui->renkkodLnedit,ui->renknameLnedit,ui->carikodLnedit,ui->carinameLnedit,
                                     ui->miktarLnedit};
        for (QLineEdit *lineEdit : lineedits) {
            if (lineEdit->text().isEmpty())
            {
                QMessageBox::critical(this,"Empty.!","Data is Empty!!!");
                return false;
            }
        }
    
        return true;
    }
    
    bool AddPage::insertData(const QString &tableName,const QMap<QString, QString>& iplikData)
    {
        QString queryString = "INSERT INTO " + tableName + " (";
    
        QStringList columnNames;
        QStringList valuePlaceholders;
    
        for (auto it = iplikData.constBegin(); it != iplikData.constEnd(); ++it)
        {
            columnNames << it.key();
            valuePlaceholders << "?";
        }
    
        queryString += columnNames.join(", ") + ") VALUES (" + valuePlaceholders.join(", ") + ")";
        myQuery->prepare(queryString);
    
        for (auto it = iplikData.constBegin(); it != iplikData.constEnd(); ++it)
        {
            myQuery->addBindValue(it.value());
        }
    
        bool success = myQuery->exec();
    
        return success;
    }
    
    void AddPage::iptalBtn_clicked()
    {
        this->close();
    }
    
    void AddPage::add_Data_Clicked()
    {
        auto empty = lnedit_cntrl();
    
        if (!empty)
        {
            QString _iplikkod = ui->iplikkodLnedit->text();
            QString _iplikname = ui->ipliknameLnedit->text();
            QString _renkkod = ui->renkkodLnedit->text();
            QString _renkname = ui->renknameLnedit->text();
            QString _carikod = ui->carikodLnedit->text();
            QString _cariname = ui->carinameLnedit->text();
            QString _miktar = ui->miktarLnedit->text();
            QString _drezerv = ui->drezervLnedit->text();
            QString _bmiktar = ui->bmiktarLnedit->text();
            QString _ozelnot = ui->ozelNot->text();
    
            QMap<QString, QString> iplikData;
            QString tableName = "iplikler";
            bool success = false;
    
            iplikData["iplikkod"] = _iplikkod;
            iplikData["iplikname"] = _iplikname;
            iplikData["renkkod"] = _renkkod;
            iplikData["renkname"] = _renkname;
            iplikData["carikod"] = _carikod;
            iplikData["cariname"] = _cariname;
            iplikData["boyamamiktar"] = _bmiktar;
            iplikData["deporezerv"] = _drezerv;
            iplikData["miktar"] = _miktar;
            iplikData["ozelnot"] = _ozelnot;
    
            success = insertData(tableName,iplikData);
    
            if(success)
            {
                emit veriEklendi();
                qDebug()<<"Veriler eklendi";
            }
            else {
                qDebug() << "Veri ekleme başarısız" << myQuery->lastError().text();
            }
        }
    }
    
    /*
        if (notEmpty)
        {
            QString _iplikkod = ui->iplikkodLnedit->text();
            QString _iplikname = ui->ipliknameLnedit->text();
            QString _renkkod = ui->renkkodLnedit->text();
            QString _renkname = ui->renknameLnedit->text();
            QString _carikod = ui->carikodLnedit->text();
            QString _cariname = ui->carinameLnedit->text();
            QString _miktar = ui->miktarLnedit->text();
            QString _drezerv = ui->drezervLnedit->text();
            QString _bmiktar = ui->bmiktarLnedit->text();
            QString _ozelnot = ui->ozelNot->text();
    
            QMap<QString, QString> iplikData;
            QString tableName;
    
            iplikData["iplikkod"] = _iplikkod;
            iplikData["iplikname"] = _iplikname;
            tableName= "iplikler";
            bool success = insertData(tableName,iplikData);
            if(!success)
            {
                qDebug() << "Veri ekleme başarısız:1 " << myQuery->lastError().text();
            }
    
            iplikData.clear();
            iplikData["renkkod"] = _renkkod;
            iplikData["renkname"] = _renkname;
            tableName = "iplikler";
            success = insertData(tableName,iplikData);
            if(!success)
            {
                qDebug() << "Veri ekleme başarısız:2 " << myQuery->lastError().text();
            }
    
            iplikData.clear();
            iplikData["carikod"] = _carikod;
            iplikData["cariname"] = _cariname;
            tableName = "iplikler";
            success = insertData(tableName,iplikData);
            if(!success)
            {
                qDebug() << "Veri ekleme başarısız:3 " << myQuery->lastError().text();
            }
    
            iplikData.clear();
            iplikData["boyamamiktar"] = _bmiktar;
            tableName = "iplikler";
            success = insertData(tableName,iplikData);
            if(!success)
            {
                qDebug() << "Veri ekleme başarısız:4 " << myQuery->lastError().text();
            }
    
            iplikData.clear();
            iplikData["deporezerv"] = _drezerv;
            tableName = "iplikler";
            success = insertData(tableName,iplikData);
            if(!success)
            {
                qDebug() << "Veri ekleme başarısız:5 " << myQuery->lastError().text();
            }
    
            iplikData.clear();
            iplikData["miktar"] = _miktar;
            tableName = "iplikler";
            success = insertData(tableName,iplikData);
            if(!success)
            {
                qDebug() << "Veri ekleme başarısız:6 " << myQuery->lastError().text();
            }
    
            iplikData.clear();
            iplikData["ozelnot"] = _ozelnot;
            tableName = "iplikler";
            success = insertData(tableName,iplikData);
            if(!success)
            {
                qDebug() << "Veri ekleme başarısız:7 " << myQuery->lastError().text();
            }
    
            MainPage *mainPage = qobject_cast<MainPage*>(this->parentWidget());
            if (mainPage)
            {
                mainPage->updateTableView();
            }
        }
    */
    
    JonBJ jsulmJ Pl45m4P 3 Replies Last reply
    0
    • yy_pc_programmerY yy_pc_programmer

      Hello, my codes are below.
      I want to send a parameter to the addpage class when a click event is triggered. How can I do that? Thanks
      mainpage.h file:

      #ifndef MAINPAGE_H
      #define MAINPAGE_H
      
      #include "giriswidget.h"
      #include "btnitemdelegate.h"
      #include "addpage.h"
      #include "detailpage.h"
      #include "update.h"
      #include <QDialog>
      #include <QTableView>
      #include <QSql>
      #include <QSqlDatabase>
      #include <QSqlQueryModel>
      #include <QSqlQuery>
      #include <QStandardItemModel>
      #include <QPushButton>
      #include <QModelIndex>
      
      namespace Ui {
      class MainPage;
      }
      
      class MainPage : public QDialog
      {
          Q_OBJECT
      
      public:
          explicit MainPage(QWidget *parent = nullptr);
          ~MainPage();
          void connectDb();
      
      
          void updateTableView();
          void myview_stil_layout();
      
      public slots:
          void updateBtnClickedSlot(const QModelIndex &mindex);
          void deleteBtnClickedSlot(const QModelIndex &mindex);
          //void addBtn_Page_Clicked(); //addpage
          void sendParameterToAddPage(QModelIndex &mindex);
          void detailBtn_Page_Clicked();
          void clickedLogOutBtn_Clicked();
          //int sevkHesaplama();
      
      public:
          Ui::MainPage *ui;
      
          //AddPage *addpg;
          DetailPage *detail;
          QSqlDatabase mydb;
          QSqlQueryModel *queryModel;
          QSqlQueryModel *queryModelDelete;
          QStandardItemModel *itemModelBtn;
          QPushButton *deleteBtn;
          QPushButton *updateBtn;
          const int ID={};
          int objID;
      };
      
      #endif // MAINPAGE_H
      

      mainpage.cpp file:

      #include "mainpage.h"
      #include "ui_mainpage.h"
      #include "giriswidget.h"
      #include "btnitemdelegate.h"
      #include "addpage.h"
      #include "detailpage.h"
      #include "update.h"
      #include <QMessageBox>
      #include <QDebug>
      #include <QSqlError>
      #include <QHeaderView>
      #include <QSqlQueryModel>
      #include <QStringList>
      #include <QWidget>
      #include <QModelIndex>
      #include <QObject>
      
      MainPage::MainPage(QWidget *parent) : QDialog(parent), ui(new Ui::MainPage)
      {
          ui->setupUi(this);
      
          connectDb();
      
          updateTableView();
      
          connect(ui->logOutBtn,&QPushButton::clicked,this,&MainPage::clickedLogOutBtn_Clicked);
      
          AddPage *m_addPg = new AddPage(objID);
      
          connect(m_addPg,&AddPage::add_Data_Clicked,this,&MainPage::addBtn_Page_Clicked);
      
          connect(ui->detailBtn,&QPushButton::clicked,this,&MainPage::detailBtn_Page_Clicked);
      
          btnItemDelegate *btnDlgte = new btnItemDelegate("delete",ui->myView);
          btnItemDelegate *btnUpdate = new btnItemDelegate("guncelle",ui->myView);
      
          connect(btnDlgte, &btnItemDelegate::clickedDeleteBtnSignal, this, &MainPage::deleteBtnClickedSlot);
          connect(btnUpdate, &btnItemDelegate::clickedUpdateBtnSignal,this, &MainPage::updateBtnClickedSlot); //updatePage
      
          detail = new DetailPage();
      
          queryModel->insertColumn(queryModel->columnCount());
          queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Sil"));
      
          ui->myView->setItemDelegateForColumn(queryModel->columnCount()-1,btnDlgte); //ok
      
          queryModel->insertColumn(queryModel->columnCount());
      
          queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Güncelle"));
      
          ui->myView->setItemDelegateForColumn(queryModel->columnCount()-1,btnUpdate); //ok
      
          ui->myView->setSelectionBehavior(QAbstractItemView::SelectItems);
          ui->myView->setModel(queryModel);
      }
      
      void MainPage::connectDb()
      {
          mydb = QSqlDatabase::addDatabase("QMYSQL");
      
          mydb.setHostName("localhost");
          mydb.setDatabaseName("krn_iplikler");
          mydb.setUserName("root");
          mydb.setPassword("root");
          mydb.setPort(3306);
          mydb.open();
      
          if (mydb.isOpen())
          {
              qDebug()<<"db connection is succesfully";
          }
          else {
              QMessageBox::information(this,"Connection Failed.!","Database connection failed!!!!",QMessageBox::Cancel);
              qDebug()<<mydb.lastError().text();
          }
      }
      
      void MainPage::addBtn_Page_Clicked()
      {
          sendParameterToAddPage(mindex);
      }
      
      void MainPage::sendParameterToAddPage(QModelIndex &mindex) //addpage sınıfına parametre gönderme
      {
          if (mindex.isValid())
          {
              int rowIndex = mindex.row();
              qDebug() << "ekle butonu tıklandı. indeksi: " << rowIndex;
      
              auto objID = queryModel->data(queryModel->index(rowIndex, 0), Qt::DisplayRole).toInt();
              AddPage *addpag = new AddPage(objID);
              connect(addpag , &AddPage::veriEklendi,this,[=](){
                  qDebug()<<"tabloya eklendi";
                  queryModel->setQuery("SELECT * FROM iplikler",mydb);
                  queryModel->insertColumn(queryModel->columnCount());
                  queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Sil"));
                  queryModel->insertColumn(queryModel->columnCount());
                  queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Güncelle"));
                  ui->myView->setModel(queryModel);
                  QHeaderView *horizontalHeader = ui->myView->horizontalHeader();
                  horizontalHeader->setResizeContentsPrecision(QHeaderView::ResizeToContents);
              });
              addpag->setModal(true);
              addpag->setWindowTitle("Add Page");
              addpag->setWindowIcon(QIcon(":/icon/icons/add.png"));
              addpag->setWindowFlags( Qt::WindowMinimizeButtonHint);
              addpag->adjustSize();
              addpag->setFixedSize(1000,150);
              addpag->show();
          }else {
              qDebug()<<"addpage error index";
          }
      }
      
      void MainPage::detailBtn_Page_Clicked()
      {
          detail->setWindowTitle("Details Page");
          detail->setWindowIcon(QIcon(":/icon/icons/detail.png"));
          detail->setWindowFlags( Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint);
          detail->setModal(true);
          detail->adjustSize();
          detail->setFixedSize(600,400);
          detail->show();
      }
      
      void MainPage::clickedLogOutBtn_Clicked()
      {
          this->close();
          GirisWidget *giris = new GirisWidget();
          giris->setWindowTitle("Login Page");
          giris->adjustSize();
          giris->setFixedSize(450,350);
          giris->setWindowIcon(QIcon(":/icon/icons/login.png"));
          giris->setWindowFlags( Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint);
          giris->show();
      }
      
      void MainPage::updateTableView()
      {
          queryModel = new QSqlQueryModel();
          queryModel->setQuery("SELECT * FROM iplikler",mydb);
      
          ui->myView->setModel(queryModel);
      
          myview_stil_layout();
      }
      
      void MainPage::myview_stil_layout()
      {
          if (!queryModel)
          {
              return;
          }
      
          QStringList headernames;
          headernames <<"Sıra No"<<"Boyanan Miktar"<<"Cari Kodu"<<"Cari Adı"<<"Depodan Rezerv"
                      <<"İplik Kodu"<<"İplik Adı"<<"Miktar"<<"Onay Zamanı"<<"Özel Notu"<<"Renk Kodu"<<"Renk Adı"<<"Sevk Edilecek Miktar"<<"Sevk Miktarı";
      
          for (int i = 0; i < headernames.size(); ++i) {
              queryModel->setHeaderData(i, Qt::Horizontal, headernames[i]);
          }
      
          ui->myView->setStyleSheet("QHeaderView::section { background-color: lightblue ; color: black; font-weight: bold;}");
          ui->myView->setModel(queryModel);
      
          ui->myView->verticalHeader()->setVisible(false);
      
          QHeaderView *horizontalHeader = ui->myView->horizontalHeader();
          horizontalHeader->setResizeContentsPrecision(QHeaderView::ResizeToContents);
      }
      
      void MainPage::updateBtnClickedSlot(const QModelIndex &mindex)
      {
          if (mindex.isValid())
          {
              int rowIndex = mindex.row();
              qDebug() << "Güncelle butonuna tıklandı. Satır indeksi: " << rowIndex;
      
              auto itemID = queryModel->data(queryModel->index(rowIndex, 0), Qt::DisplayRole).toInt();
              Update *update = new Update(itemID); //id ve model i update e iletme
              connect(update , &Update::verilerGuncellendi,this,[=](){
                  qDebug()<<"tablo guncellendi";
                  queryModel->setQuery("SELECT * FROM iplikler",mydb);
                  queryModel->insertColumn(queryModel->columnCount());
                  queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Sil"));
                  queryModel->insertColumn(queryModel->columnCount());
                  queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Güncelle"));
                  ui->myView->setModel(queryModel);
                  QHeaderView *horizontalHeader = ui->myView->horizontalHeader();
                  horizontalHeader->setResizeContentsPrecision(QHeaderView::ResizeToContents);
              });
              update->setWindowTitle("Update Page");
              update->setWindowIcon(QIcon(":/icon/icons/updatepage.png"));
              update->setWindowFlags( Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint);
              update->setModal(true);
              update->setFixedSize(1000,150);
              update->show();
          }else {
              qDebug()<<"error index";
          }
      }
      
      void MainPage::deleteBtnClickedSlot(const QModelIndex &mindex)
      {
          if (mindex.isValid())
          {
              int rowIndex = mindex.row();
              qDebug() << "delete butonuna tıklandı. indeksi: " << rowIndex;
      
              QModelIndex modelIndex = queryModel->index(rowIndex,0);
              int ID = queryModel->data(modelIndex,Qt::DisplayRole).toInt();
      
              QSqlQuery deleteQuery;
              deleteQuery.prepare("DELETE FROM iplikler WHERE ID = :ID ");
              deleteQuery.bindValue(":ID",ID);
      
              if (deleteQuery.exec()) {
                  qDebug()<<"veri silindi";
                  queryModel->setQuery("SELECT * FROM iplikler",mydb);
                  queryModel->insertColumn(queryModel->columnCount());
                  queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Sil"));
                  queryModel->insertColumn(queryModel->columnCount());
                  queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Güncelle"));
                  ui->myView->setModel(queryModel);
              }
              else{
                  qDebug() << "Satır silinirken hata oluştu:" << deleteQuery.lastError().text();
              }
          }else {
              qDebug()<<"error index";
          }
      }
      
      /*int MainPage::sevkHesaplama()
      {
      }*/
      
      MainPage::~MainPage()
      {
          delete ui;
      }
      

      addpage.h file:

      #ifndef ADDPAGE_H
      #define ADDPAGE_H
      
      #include <QDialog>
      #include <QSqlQuery>
      #include <QSqlQueryModel>
      
      namespace Ui {
      class AddPage;
      }
      
      class AddPage : public QDialog
      {
          Q_OBJECT
      
      public:
          explicit AddPage(int objID, QWidget *parent = nullptr);
          ~AddPage();
      
          bool lnedit_cntrl();
          void add_Data_Clicked();
          bool insertData(const QString &tablename,const QMap<QString, QString>& iplikData);
          void iptalBtn_clicked();
      
      signals:
          void addData();
          void veriEklendi();
      
      private:
          Ui::AddPage *ui;
          QSqlQueryModel *myQueryModel;
          QSqlQueryModel *queryModel;
          QSqlQuery *myQuery;
          int n_ID;
      };
      
      #endif // ADDPAGE_H
      

      addpage.cpp file:

      #include "addpage.h"
      #include "ui_addpage.h"
      #include <QDebug>
      #include <QMessageBox>
      #include <QSqlError>
      #include <QHeaderView>
      
      AddPage::AddPage(int objID, QWidget *parent) :
          QDialog(parent),
          n_ID(objID),
          ui(new Ui::AddPage)
      {
          ui->setupUi(this);
      
          myQueryModel = new QSqlQueryModel();
          myQuery = new QSqlQuery();
      
          connect(ui->kaydetBtn,&QPushButton::clicked,this,&AddPage::add_Data_Clicked);
          connect(ui->iptalBtn,&QPushButton::clicked,this,&AddPage::iptalBtn_clicked);
      }
      
      AddPage::~AddPage()
      {
          delete ui;
      }
      
      bool AddPage::lnedit_cntrl()
      {
          QList<QLineEdit*> lineedits {ui->iplikkodLnedit,ui->ipliknameLnedit,ui->renkkodLnedit,ui->renknameLnedit,ui->carikodLnedit,ui->carinameLnedit,
                                       ui->miktarLnedit};
          for (QLineEdit *lineEdit : lineedits) {
              if (lineEdit->text().isEmpty())
              {
                  QMessageBox::critical(this,"Empty.!","Data is Empty!!!");
                  return false;
              }
          }
      
          return true;
      }
      
      bool AddPage::insertData(const QString &tableName,const QMap<QString, QString>& iplikData)
      {
          QString queryString = "INSERT INTO " + tableName + " (";
      
          QStringList columnNames;
          QStringList valuePlaceholders;
      
          for (auto it = iplikData.constBegin(); it != iplikData.constEnd(); ++it)
          {
              columnNames << it.key();
              valuePlaceholders << "?";
          }
      
          queryString += columnNames.join(", ") + ") VALUES (" + valuePlaceholders.join(", ") + ")";
          myQuery->prepare(queryString);
      
          for (auto it = iplikData.constBegin(); it != iplikData.constEnd(); ++it)
          {
              myQuery->addBindValue(it.value());
          }
      
          bool success = myQuery->exec();
      
          return success;
      }
      
      void AddPage::iptalBtn_clicked()
      {
          this->close();
      }
      
      void AddPage::add_Data_Clicked()
      {
          auto empty = lnedit_cntrl();
      
          if (!empty)
          {
              QString _iplikkod = ui->iplikkodLnedit->text();
              QString _iplikname = ui->ipliknameLnedit->text();
              QString _renkkod = ui->renkkodLnedit->text();
              QString _renkname = ui->renknameLnedit->text();
              QString _carikod = ui->carikodLnedit->text();
              QString _cariname = ui->carinameLnedit->text();
              QString _miktar = ui->miktarLnedit->text();
              QString _drezerv = ui->drezervLnedit->text();
              QString _bmiktar = ui->bmiktarLnedit->text();
              QString _ozelnot = ui->ozelNot->text();
      
              QMap<QString, QString> iplikData;
              QString tableName = "iplikler";
              bool success = false;
      
              iplikData["iplikkod"] = _iplikkod;
              iplikData["iplikname"] = _iplikname;
              iplikData["renkkod"] = _renkkod;
              iplikData["renkname"] = _renkname;
              iplikData["carikod"] = _carikod;
              iplikData["cariname"] = _cariname;
              iplikData["boyamamiktar"] = _bmiktar;
              iplikData["deporezerv"] = _drezerv;
              iplikData["miktar"] = _miktar;
              iplikData["ozelnot"] = _ozelnot;
      
              success = insertData(tableName,iplikData);
      
              if(success)
              {
                  emit veriEklendi();
                  qDebug()<<"Veriler eklendi";
              }
              else {
                  qDebug() << "Veri ekleme başarısız" << myQuery->lastError().text();
              }
          }
      }
      
      /*
          if (notEmpty)
          {
              QString _iplikkod = ui->iplikkodLnedit->text();
              QString _iplikname = ui->ipliknameLnedit->text();
              QString _renkkod = ui->renkkodLnedit->text();
              QString _renkname = ui->renknameLnedit->text();
              QString _carikod = ui->carikodLnedit->text();
              QString _cariname = ui->carinameLnedit->text();
              QString _miktar = ui->miktarLnedit->text();
              QString _drezerv = ui->drezervLnedit->text();
              QString _bmiktar = ui->bmiktarLnedit->text();
              QString _ozelnot = ui->ozelNot->text();
      
              QMap<QString, QString> iplikData;
              QString tableName;
      
              iplikData["iplikkod"] = _iplikkod;
              iplikData["iplikname"] = _iplikname;
              tableName= "iplikler";
              bool success = insertData(tableName,iplikData);
              if(!success)
              {
                  qDebug() << "Veri ekleme başarısız:1 " << myQuery->lastError().text();
              }
      
              iplikData.clear();
              iplikData["renkkod"] = _renkkod;
              iplikData["renkname"] = _renkname;
              tableName = "iplikler";
              success = insertData(tableName,iplikData);
              if(!success)
              {
                  qDebug() << "Veri ekleme başarısız:2 " << myQuery->lastError().text();
              }
      
              iplikData.clear();
              iplikData["carikod"] = _carikod;
              iplikData["cariname"] = _cariname;
              tableName = "iplikler";
              success = insertData(tableName,iplikData);
              if(!success)
              {
                  qDebug() << "Veri ekleme başarısız:3 " << myQuery->lastError().text();
              }
      
              iplikData.clear();
              iplikData["boyamamiktar"] = _bmiktar;
              tableName = "iplikler";
              success = insertData(tableName,iplikData);
              if(!success)
              {
                  qDebug() << "Veri ekleme başarısız:4 " << myQuery->lastError().text();
              }
      
              iplikData.clear();
              iplikData["deporezerv"] = _drezerv;
              tableName = "iplikler";
              success = insertData(tableName,iplikData);
              if(!success)
              {
                  qDebug() << "Veri ekleme başarısız:5 " << myQuery->lastError().text();
              }
      
              iplikData.clear();
              iplikData["miktar"] = _miktar;
              tableName = "iplikler";
              success = insertData(tableName,iplikData);
              if(!success)
              {
                  qDebug() << "Veri ekleme başarısız:6 " << myQuery->lastError().text();
              }
      
              iplikData.clear();
              iplikData["ozelnot"] = _ozelnot;
              tableName = "iplikler";
              success = insertData(tableName,iplikData);
              if(!success)
              {
                  qDebug() << "Veri ekleme başarısız:7 " << myQuery->lastError().text();
              }
      
              MainPage *mainPage = qobject_cast<MainPage*>(this->parentWidget());
              if (mainPage)
              {
                  mainPage->updateTableView();
              }
          }
      */
      
      JonBJ Offline
      JonBJ Offline
      JonB
      wrote on last edited by
      #2

      @yy_pc_programmer
      That is hundreds of lines to ask some small question. Maybe someone else will want to look through all that code. I can say:

      • If you want to pass an extra parameter to the slot connected to a signal use a C++ lambda.
      // `param` holds something you want to send with the signal to the slot
      connect(signalObject, &Signaller::signal, slotObject, [param]() { qDebug() << param; })'
      
      • If you want to "pass" a parameter to a class, add formal parameter for that to class's constructor, or provide a setter method you call after creating the instance.

      Otherwise you can wait to see if someone wants to look through your code to guess what you want.

      1 Reply Last reply
      1
      • yy_pc_programmerY yy_pc_programmer

        Hello, my codes are below.
        I want to send a parameter to the addpage class when a click event is triggered. How can I do that? Thanks
        mainpage.h file:

        #ifndef MAINPAGE_H
        #define MAINPAGE_H
        
        #include "giriswidget.h"
        #include "btnitemdelegate.h"
        #include "addpage.h"
        #include "detailpage.h"
        #include "update.h"
        #include <QDialog>
        #include <QTableView>
        #include <QSql>
        #include <QSqlDatabase>
        #include <QSqlQueryModel>
        #include <QSqlQuery>
        #include <QStandardItemModel>
        #include <QPushButton>
        #include <QModelIndex>
        
        namespace Ui {
        class MainPage;
        }
        
        class MainPage : public QDialog
        {
            Q_OBJECT
        
        public:
            explicit MainPage(QWidget *parent = nullptr);
            ~MainPage();
            void connectDb();
        
        
            void updateTableView();
            void myview_stil_layout();
        
        public slots:
            void updateBtnClickedSlot(const QModelIndex &mindex);
            void deleteBtnClickedSlot(const QModelIndex &mindex);
            //void addBtn_Page_Clicked(); //addpage
            void sendParameterToAddPage(QModelIndex &mindex);
            void detailBtn_Page_Clicked();
            void clickedLogOutBtn_Clicked();
            //int sevkHesaplama();
        
        public:
            Ui::MainPage *ui;
        
            //AddPage *addpg;
            DetailPage *detail;
            QSqlDatabase mydb;
            QSqlQueryModel *queryModel;
            QSqlQueryModel *queryModelDelete;
            QStandardItemModel *itemModelBtn;
            QPushButton *deleteBtn;
            QPushButton *updateBtn;
            const int ID={};
            int objID;
        };
        
        #endif // MAINPAGE_H
        

        mainpage.cpp file:

        #include "mainpage.h"
        #include "ui_mainpage.h"
        #include "giriswidget.h"
        #include "btnitemdelegate.h"
        #include "addpage.h"
        #include "detailpage.h"
        #include "update.h"
        #include <QMessageBox>
        #include <QDebug>
        #include <QSqlError>
        #include <QHeaderView>
        #include <QSqlQueryModel>
        #include <QStringList>
        #include <QWidget>
        #include <QModelIndex>
        #include <QObject>
        
        MainPage::MainPage(QWidget *parent) : QDialog(parent), ui(new Ui::MainPage)
        {
            ui->setupUi(this);
        
            connectDb();
        
            updateTableView();
        
            connect(ui->logOutBtn,&QPushButton::clicked,this,&MainPage::clickedLogOutBtn_Clicked);
        
            AddPage *m_addPg = new AddPage(objID);
        
            connect(m_addPg,&AddPage::add_Data_Clicked,this,&MainPage::addBtn_Page_Clicked);
        
            connect(ui->detailBtn,&QPushButton::clicked,this,&MainPage::detailBtn_Page_Clicked);
        
            btnItemDelegate *btnDlgte = new btnItemDelegate("delete",ui->myView);
            btnItemDelegate *btnUpdate = new btnItemDelegate("guncelle",ui->myView);
        
            connect(btnDlgte, &btnItemDelegate::clickedDeleteBtnSignal, this, &MainPage::deleteBtnClickedSlot);
            connect(btnUpdate, &btnItemDelegate::clickedUpdateBtnSignal,this, &MainPage::updateBtnClickedSlot); //updatePage
        
            detail = new DetailPage();
        
            queryModel->insertColumn(queryModel->columnCount());
            queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Sil"));
        
            ui->myView->setItemDelegateForColumn(queryModel->columnCount()-1,btnDlgte); //ok
        
            queryModel->insertColumn(queryModel->columnCount());
        
            queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Güncelle"));
        
            ui->myView->setItemDelegateForColumn(queryModel->columnCount()-1,btnUpdate); //ok
        
            ui->myView->setSelectionBehavior(QAbstractItemView::SelectItems);
            ui->myView->setModel(queryModel);
        }
        
        void MainPage::connectDb()
        {
            mydb = QSqlDatabase::addDatabase("QMYSQL");
        
            mydb.setHostName("localhost");
            mydb.setDatabaseName("krn_iplikler");
            mydb.setUserName("root");
            mydb.setPassword("root");
            mydb.setPort(3306);
            mydb.open();
        
            if (mydb.isOpen())
            {
                qDebug()<<"db connection is succesfully";
            }
            else {
                QMessageBox::information(this,"Connection Failed.!","Database connection failed!!!!",QMessageBox::Cancel);
                qDebug()<<mydb.lastError().text();
            }
        }
        
        void MainPage::addBtn_Page_Clicked()
        {
            sendParameterToAddPage(mindex);
        }
        
        void MainPage::sendParameterToAddPage(QModelIndex &mindex) //addpage sınıfına parametre gönderme
        {
            if (mindex.isValid())
            {
                int rowIndex = mindex.row();
                qDebug() << "ekle butonu tıklandı. indeksi: " << rowIndex;
        
                auto objID = queryModel->data(queryModel->index(rowIndex, 0), Qt::DisplayRole).toInt();
                AddPage *addpag = new AddPage(objID);
                connect(addpag , &AddPage::veriEklendi,this,[=](){
                    qDebug()<<"tabloya eklendi";
                    queryModel->setQuery("SELECT * FROM iplikler",mydb);
                    queryModel->insertColumn(queryModel->columnCount());
                    queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Sil"));
                    queryModel->insertColumn(queryModel->columnCount());
                    queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Güncelle"));
                    ui->myView->setModel(queryModel);
                    QHeaderView *horizontalHeader = ui->myView->horizontalHeader();
                    horizontalHeader->setResizeContentsPrecision(QHeaderView::ResizeToContents);
                });
                addpag->setModal(true);
                addpag->setWindowTitle("Add Page");
                addpag->setWindowIcon(QIcon(":/icon/icons/add.png"));
                addpag->setWindowFlags( Qt::WindowMinimizeButtonHint);
                addpag->adjustSize();
                addpag->setFixedSize(1000,150);
                addpag->show();
            }else {
                qDebug()<<"addpage error index";
            }
        }
        
        void MainPage::detailBtn_Page_Clicked()
        {
            detail->setWindowTitle("Details Page");
            detail->setWindowIcon(QIcon(":/icon/icons/detail.png"));
            detail->setWindowFlags( Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint);
            detail->setModal(true);
            detail->adjustSize();
            detail->setFixedSize(600,400);
            detail->show();
        }
        
        void MainPage::clickedLogOutBtn_Clicked()
        {
            this->close();
            GirisWidget *giris = new GirisWidget();
            giris->setWindowTitle("Login Page");
            giris->adjustSize();
            giris->setFixedSize(450,350);
            giris->setWindowIcon(QIcon(":/icon/icons/login.png"));
            giris->setWindowFlags( Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint);
            giris->show();
        }
        
        void MainPage::updateTableView()
        {
            queryModel = new QSqlQueryModel();
            queryModel->setQuery("SELECT * FROM iplikler",mydb);
        
            ui->myView->setModel(queryModel);
        
            myview_stil_layout();
        }
        
        void MainPage::myview_stil_layout()
        {
            if (!queryModel)
            {
                return;
            }
        
            QStringList headernames;
            headernames <<"Sıra No"<<"Boyanan Miktar"<<"Cari Kodu"<<"Cari Adı"<<"Depodan Rezerv"
                        <<"İplik Kodu"<<"İplik Adı"<<"Miktar"<<"Onay Zamanı"<<"Özel Notu"<<"Renk Kodu"<<"Renk Adı"<<"Sevk Edilecek Miktar"<<"Sevk Miktarı";
        
            for (int i = 0; i < headernames.size(); ++i) {
                queryModel->setHeaderData(i, Qt::Horizontal, headernames[i]);
            }
        
            ui->myView->setStyleSheet("QHeaderView::section { background-color: lightblue ; color: black; font-weight: bold;}");
            ui->myView->setModel(queryModel);
        
            ui->myView->verticalHeader()->setVisible(false);
        
            QHeaderView *horizontalHeader = ui->myView->horizontalHeader();
            horizontalHeader->setResizeContentsPrecision(QHeaderView::ResizeToContents);
        }
        
        void MainPage::updateBtnClickedSlot(const QModelIndex &mindex)
        {
            if (mindex.isValid())
            {
                int rowIndex = mindex.row();
                qDebug() << "Güncelle butonuna tıklandı. Satır indeksi: " << rowIndex;
        
                auto itemID = queryModel->data(queryModel->index(rowIndex, 0), Qt::DisplayRole).toInt();
                Update *update = new Update(itemID); //id ve model i update e iletme
                connect(update , &Update::verilerGuncellendi,this,[=](){
                    qDebug()<<"tablo guncellendi";
                    queryModel->setQuery("SELECT * FROM iplikler",mydb);
                    queryModel->insertColumn(queryModel->columnCount());
                    queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Sil"));
                    queryModel->insertColumn(queryModel->columnCount());
                    queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Güncelle"));
                    ui->myView->setModel(queryModel);
                    QHeaderView *horizontalHeader = ui->myView->horizontalHeader();
                    horizontalHeader->setResizeContentsPrecision(QHeaderView::ResizeToContents);
                });
                update->setWindowTitle("Update Page");
                update->setWindowIcon(QIcon(":/icon/icons/updatepage.png"));
                update->setWindowFlags( Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint);
                update->setModal(true);
                update->setFixedSize(1000,150);
                update->show();
            }else {
                qDebug()<<"error index";
            }
        }
        
        void MainPage::deleteBtnClickedSlot(const QModelIndex &mindex)
        {
            if (mindex.isValid())
            {
                int rowIndex = mindex.row();
                qDebug() << "delete butonuna tıklandı. indeksi: " << rowIndex;
        
                QModelIndex modelIndex = queryModel->index(rowIndex,0);
                int ID = queryModel->data(modelIndex,Qt::DisplayRole).toInt();
        
                QSqlQuery deleteQuery;
                deleteQuery.prepare("DELETE FROM iplikler WHERE ID = :ID ");
                deleteQuery.bindValue(":ID",ID);
        
                if (deleteQuery.exec()) {
                    qDebug()<<"veri silindi";
                    queryModel->setQuery("SELECT * FROM iplikler",mydb);
                    queryModel->insertColumn(queryModel->columnCount());
                    queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Sil"));
                    queryModel->insertColumn(queryModel->columnCount());
                    queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Güncelle"));
                    ui->myView->setModel(queryModel);
                }
                else{
                    qDebug() << "Satır silinirken hata oluştu:" << deleteQuery.lastError().text();
                }
            }else {
                qDebug()<<"error index";
            }
        }
        
        /*int MainPage::sevkHesaplama()
        {
        }*/
        
        MainPage::~MainPage()
        {
            delete ui;
        }
        

        addpage.h file:

        #ifndef ADDPAGE_H
        #define ADDPAGE_H
        
        #include <QDialog>
        #include <QSqlQuery>
        #include <QSqlQueryModel>
        
        namespace Ui {
        class AddPage;
        }
        
        class AddPage : public QDialog
        {
            Q_OBJECT
        
        public:
            explicit AddPage(int objID, QWidget *parent = nullptr);
            ~AddPage();
        
            bool lnedit_cntrl();
            void add_Data_Clicked();
            bool insertData(const QString &tablename,const QMap<QString, QString>& iplikData);
            void iptalBtn_clicked();
        
        signals:
            void addData();
            void veriEklendi();
        
        private:
            Ui::AddPage *ui;
            QSqlQueryModel *myQueryModel;
            QSqlQueryModel *queryModel;
            QSqlQuery *myQuery;
            int n_ID;
        };
        
        #endif // ADDPAGE_H
        

        addpage.cpp file:

        #include "addpage.h"
        #include "ui_addpage.h"
        #include <QDebug>
        #include <QMessageBox>
        #include <QSqlError>
        #include <QHeaderView>
        
        AddPage::AddPage(int objID, QWidget *parent) :
            QDialog(parent),
            n_ID(objID),
            ui(new Ui::AddPage)
        {
            ui->setupUi(this);
        
            myQueryModel = new QSqlQueryModel();
            myQuery = new QSqlQuery();
        
            connect(ui->kaydetBtn,&QPushButton::clicked,this,&AddPage::add_Data_Clicked);
            connect(ui->iptalBtn,&QPushButton::clicked,this,&AddPage::iptalBtn_clicked);
        }
        
        AddPage::~AddPage()
        {
            delete ui;
        }
        
        bool AddPage::lnedit_cntrl()
        {
            QList<QLineEdit*> lineedits {ui->iplikkodLnedit,ui->ipliknameLnedit,ui->renkkodLnedit,ui->renknameLnedit,ui->carikodLnedit,ui->carinameLnedit,
                                         ui->miktarLnedit};
            for (QLineEdit *lineEdit : lineedits) {
                if (lineEdit->text().isEmpty())
                {
                    QMessageBox::critical(this,"Empty.!","Data is Empty!!!");
                    return false;
                }
            }
        
            return true;
        }
        
        bool AddPage::insertData(const QString &tableName,const QMap<QString, QString>& iplikData)
        {
            QString queryString = "INSERT INTO " + tableName + " (";
        
            QStringList columnNames;
            QStringList valuePlaceholders;
        
            for (auto it = iplikData.constBegin(); it != iplikData.constEnd(); ++it)
            {
                columnNames << it.key();
                valuePlaceholders << "?";
            }
        
            queryString += columnNames.join(", ") + ") VALUES (" + valuePlaceholders.join(", ") + ")";
            myQuery->prepare(queryString);
        
            for (auto it = iplikData.constBegin(); it != iplikData.constEnd(); ++it)
            {
                myQuery->addBindValue(it.value());
            }
        
            bool success = myQuery->exec();
        
            return success;
        }
        
        void AddPage::iptalBtn_clicked()
        {
            this->close();
        }
        
        void AddPage::add_Data_Clicked()
        {
            auto empty = lnedit_cntrl();
        
            if (!empty)
            {
                QString _iplikkod = ui->iplikkodLnedit->text();
                QString _iplikname = ui->ipliknameLnedit->text();
                QString _renkkod = ui->renkkodLnedit->text();
                QString _renkname = ui->renknameLnedit->text();
                QString _carikod = ui->carikodLnedit->text();
                QString _cariname = ui->carinameLnedit->text();
                QString _miktar = ui->miktarLnedit->text();
                QString _drezerv = ui->drezervLnedit->text();
                QString _bmiktar = ui->bmiktarLnedit->text();
                QString _ozelnot = ui->ozelNot->text();
        
                QMap<QString, QString> iplikData;
                QString tableName = "iplikler";
                bool success = false;
        
                iplikData["iplikkod"] = _iplikkod;
                iplikData["iplikname"] = _iplikname;
                iplikData["renkkod"] = _renkkod;
                iplikData["renkname"] = _renkname;
                iplikData["carikod"] = _carikod;
                iplikData["cariname"] = _cariname;
                iplikData["boyamamiktar"] = _bmiktar;
                iplikData["deporezerv"] = _drezerv;
                iplikData["miktar"] = _miktar;
                iplikData["ozelnot"] = _ozelnot;
        
                success = insertData(tableName,iplikData);
        
                if(success)
                {
                    emit veriEklendi();
                    qDebug()<<"Veriler eklendi";
                }
                else {
                    qDebug() << "Veri ekleme başarısız" << myQuery->lastError().text();
                }
            }
        }
        
        /*
            if (notEmpty)
            {
                QString _iplikkod = ui->iplikkodLnedit->text();
                QString _iplikname = ui->ipliknameLnedit->text();
                QString _renkkod = ui->renkkodLnedit->text();
                QString _renkname = ui->renknameLnedit->text();
                QString _carikod = ui->carikodLnedit->text();
                QString _cariname = ui->carinameLnedit->text();
                QString _miktar = ui->miktarLnedit->text();
                QString _drezerv = ui->drezervLnedit->text();
                QString _bmiktar = ui->bmiktarLnedit->text();
                QString _ozelnot = ui->ozelNot->text();
        
                QMap<QString, QString> iplikData;
                QString tableName;
        
                iplikData["iplikkod"] = _iplikkod;
                iplikData["iplikname"] = _iplikname;
                tableName= "iplikler";
                bool success = insertData(tableName,iplikData);
                if(!success)
                {
                    qDebug() << "Veri ekleme başarısız:1 " << myQuery->lastError().text();
                }
        
                iplikData.clear();
                iplikData["renkkod"] = _renkkod;
                iplikData["renkname"] = _renkname;
                tableName = "iplikler";
                success = insertData(tableName,iplikData);
                if(!success)
                {
                    qDebug() << "Veri ekleme başarısız:2 " << myQuery->lastError().text();
                }
        
                iplikData.clear();
                iplikData["carikod"] = _carikod;
                iplikData["cariname"] = _cariname;
                tableName = "iplikler";
                success = insertData(tableName,iplikData);
                if(!success)
                {
                    qDebug() << "Veri ekleme başarısız:3 " << myQuery->lastError().text();
                }
        
                iplikData.clear();
                iplikData["boyamamiktar"] = _bmiktar;
                tableName = "iplikler";
                success = insertData(tableName,iplikData);
                if(!success)
                {
                    qDebug() << "Veri ekleme başarısız:4 " << myQuery->lastError().text();
                }
        
                iplikData.clear();
                iplikData["deporezerv"] = _drezerv;
                tableName = "iplikler";
                success = insertData(tableName,iplikData);
                if(!success)
                {
                    qDebug() << "Veri ekleme başarısız:5 " << myQuery->lastError().text();
                }
        
                iplikData.clear();
                iplikData["miktar"] = _miktar;
                tableName = "iplikler";
                success = insertData(tableName,iplikData);
                if(!success)
                {
                    qDebug() << "Veri ekleme başarısız:6 " << myQuery->lastError().text();
                }
        
                iplikData.clear();
                iplikData["ozelnot"] = _ozelnot;
                tableName = "iplikler";
                success = insertData(tableName,iplikData);
                if(!success)
                {
                    qDebug() << "Veri ekleme başarısız:7 " << myQuery->lastError().text();
                }
        
                MainPage *mainPage = qobject_cast<MainPage*>(this->parentWidget());
                if (mainPage)
                {
                    mainPage->updateTableView();
                }
            }
        */
        
        jsulmJ Offline
        jsulmJ Offline
        jsulm
        Lifetime Qt Champion
        wrote on last edited by
        #3

        @yy_pc_programmer Can you please be more specific? What parameter and what click event (I guess you mean click signal?)? You can use a lambda as slot to pass any parameter you want to code you call in the lambda.

        https://forum.qt.io/topic/113070/qt-code-of-conduct

        1 Reply Last reply
        1
        • yy_pc_programmerY yy_pc_programmer

          Hello, my codes are below.
          I want to send a parameter to the addpage class when a click event is triggered. How can I do that? Thanks
          mainpage.h file:

          #ifndef MAINPAGE_H
          #define MAINPAGE_H
          
          #include "giriswidget.h"
          #include "btnitemdelegate.h"
          #include "addpage.h"
          #include "detailpage.h"
          #include "update.h"
          #include <QDialog>
          #include <QTableView>
          #include <QSql>
          #include <QSqlDatabase>
          #include <QSqlQueryModel>
          #include <QSqlQuery>
          #include <QStandardItemModel>
          #include <QPushButton>
          #include <QModelIndex>
          
          namespace Ui {
          class MainPage;
          }
          
          class MainPage : public QDialog
          {
              Q_OBJECT
          
          public:
              explicit MainPage(QWidget *parent = nullptr);
              ~MainPage();
              void connectDb();
          
          
              void updateTableView();
              void myview_stil_layout();
          
          public slots:
              void updateBtnClickedSlot(const QModelIndex &mindex);
              void deleteBtnClickedSlot(const QModelIndex &mindex);
              //void addBtn_Page_Clicked(); //addpage
              void sendParameterToAddPage(QModelIndex &mindex);
              void detailBtn_Page_Clicked();
              void clickedLogOutBtn_Clicked();
              //int sevkHesaplama();
          
          public:
              Ui::MainPage *ui;
          
              //AddPage *addpg;
              DetailPage *detail;
              QSqlDatabase mydb;
              QSqlQueryModel *queryModel;
              QSqlQueryModel *queryModelDelete;
              QStandardItemModel *itemModelBtn;
              QPushButton *deleteBtn;
              QPushButton *updateBtn;
              const int ID={};
              int objID;
          };
          
          #endif // MAINPAGE_H
          

          mainpage.cpp file:

          #include "mainpage.h"
          #include "ui_mainpage.h"
          #include "giriswidget.h"
          #include "btnitemdelegate.h"
          #include "addpage.h"
          #include "detailpage.h"
          #include "update.h"
          #include <QMessageBox>
          #include <QDebug>
          #include <QSqlError>
          #include <QHeaderView>
          #include <QSqlQueryModel>
          #include <QStringList>
          #include <QWidget>
          #include <QModelIndex>
          #include <QObject>
          
          MainPage::MainPage(QWidget *parent) : QDialog(parent), ui(new Ui::MainPage)
          {
              ui->setupUi(this);
          
              connectDb();
          
              updateTableView();
          
              connect(ui->logOutBtn,&QPushButton::clicked,this,&MainPage::clickedLogOutBtn_Clicked);
          
              AddPage *m_addPg = new AddPage(objID);
          
              connect(m_addPg,&AddPage::add_Data_Clicked,this,&MainPage::addBtn_Page_Clicked);
          
              connect(ui->detailBtn,&QPushButton::clicked,this,&MainPage::detailBtn_Page_Clicked);
          
              btnItemDelegate *btnDlgte = new btnItemDelegate("delete",ui->myView);
              btnItemDelegate *btnUpdate = new btnItemDelegate("guncelle",ui->myView);
          
              connect(btnDlgte, &btnItemDelegate::clickedDeleteBtnSignal, this, &MainPage::deleteBtnClickedSlot);
              connect(btnUpdate, &btnItemDelegate::clickedUpdateBtnSignal,this, &MainPage::updateBtnClickedSlot); //updatePage
          
              detail = new DetailPage();
          
              queryModel->insertColumn(queryModel->columnCount());
              queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Sil"));
          
              ui->myView->setItemDelegateForColumn(queryModel->columnCount()-1,btnDlgte); //ok
          
              queryModel->insertColumn(queryModel->columnCount());
          
              queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Güncelle"));
          
              ui->myView->setItemDelegateForColumn(queryModel->columnCount()-1,btnUpdate); //ok
          
              ui->myView->setSelectionBehavior(QAbstractItemView::SelectItems);
              ui->myView->setModel(queryModel);
          }
          
          void MainPage::connectDb()
          {
              mydb = QSqlDatabase::addDatabase("QMYSQL");
          
              mydb.setHostName("localhost");
              mydb.setDatabaseName("krn_iplikler");
              mydb.setUserName("root");
              mydb.setPassword("root");
              mydb.setPort(3306);
              mydb.open();
          
              if (mydb.isOpen())
              {
                  qDebug()<<"db connection is succesfully";
              }
              else {
                  QMessageBox::information(this,"Connection Failed.!","Database connection failed!!!!",QMessageBox::Cancel);
                  qDebug()<<mydb.lastError().text();
              }
          }
          
          void MainPage::addBtn_Page_Clicked()
          {
              sendParameterToAddPage(mindex);
          }
          
          void MainPage::sendParameterToAddPage(QModelIndex &mindex) //addpage sınıfına parametre gönderme
          {
              if (mindex.isValid())
              {
                  int rowIndex = mindex.row();
                  qDebug() << "ekle butonu tıklandı. indeksi: " << rowIndex;
          
                  auto objID = queryModel->data(queryModel->index(rowIndex, 0), Qt::DisplayRole).toInt();
                  AddPage *addpag = new AddPage(objID);
                  connect(addpag , &AddPage::veriEklendi,this,[=](){
                      qDebug()<<"tabloya eklendi";
                      queryModel->setQuery("SELECT * FROM iplikler",mydb);
                      queryModel->insertColumn(queryModel->columnCount());
                      queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Sil"));
                      queryModel->insertColumn(queryModel->columnCount());
                      queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Güncelle"));
                      ui->myView->setModel(queryModel);
                      QHeaderView *horizontalHeader = ui->myView->horizontalHeader();
                      horizontalHeader->setResizeContentsPrecision(QHeaderView::ResizeToContents);
                  });
                  addpag->setModal(true);
                  addpag->setWindowTitle("Add Page");
                  addpag->setWindowIcon(QIcon(":/icon/icons/add.png"));
                  addpag->setWindowFlags( Qt::WindowMinimizeButtonHint);
                  addpag->adjustSize();
                  addpag->setFixedSize(1000,150);
                  addpag->show();
              }else {
                  qDebug()<<"addpage error index";
              }
          }
          
          void MainPage::detailBtn_Page_Clicked()
          {
              detail->setWindowTitle("Details Page");
              detail->setWindowIcon(QIcon(":/icon/icons/detail.png"));
              detail->setWindowFlags( Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint);
              detail->setModal(true);
              detail->adjustSize();
              detail->setFixedSize(600,400);
              detail->show();
          }
          
          void MainPage::clickedLogOutBtn_Clicked()
          {
              this->close();
              GirisWidget *giris = new GirisWidget();
              giris->setWindowTitle("Login Page");
              giris->adjustSize();
              giris->setFixedSize(450,350);
              giris->setWindowIcon(QIcon(":/icon/icons/login.png"));
              giris->setWindowFlags( Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint);
              giris->show();
          }
          
          void MainPage::updateTableView()
          {
              queryModel = new QSqlQueryModel();
              queryModel->setQuery("SELECT * FROM iplikler",mydb);
          
              ui->myView->setModel(queryModel);
          
              myview_stil_layout();
          }
          
          void MainPage::myview_stil_layout()
          {
              if (!queryModel)
              {
                  return;
              }
          
              QStringList headernames;
              headernames <<"Sıra No"<<"Boyanan Miktar"<<"Cari Kodu"<<"Cari Adı"<<"Depodan Rezerv"
                          <<"İplik Kodu"<<"İplik Adı"<<"Miktar"<<"Onay Zamanı"<<"Özel Notu"<<"Renk Kodu"<<"Renk Adı"<<"Sevk Edilecek Miktar"<<"Sevk Miktarı";
          
              for (int i = 0; i < headernames.size(); ++i) {
                  queryModel->setHeaderData(i, Qt::Horizontal, headernames[i]);
              }
          
              ui->myView->setStyleSheet("QHeaderView::section { background-color: lightblue ; color: black; font-weight: bold;}");
              ui->myView->setModel(queryModel);
          
              ui->myView->verticalHeader()->setVisible(false);
          
              QHeaderView *horizontalHeader = ui->myView->horizontalHeader();
              horizontalHeader->setResizeContentsPrecision(QHeaderView::ResizeToContents);
          }
          
          void MainPage::updateBtnClickedSlot(const QModelIndex &mindex)
          {
              if (mindex.isValid())
              {
                  int rowIndex = mindex.row();
                  qDebug() << "Güncelle butonuna tıklandı. Satır indeksi: " << rowIndex;
          
                  auto itemID = queryModel->data(queryModel->index(rowIndex, 0), Qt::DisplayRole).toInt();
                  Update *update = new Update(itemID); //id ve model i update e iletme
                  connect(update , &Update::verilerGuncellendi,this,[=](){
                      qDebug()<<"tablo guncellendi";
                      queryModel->setQuery("SELECT * FROM iplikler",mydb);
                      queryModel->insertColumn(queryModel->columnCount());
                      queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Sil"));
                      queryModel->insertColumn(queryModel->columnCount());
                      queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Güncelle"));
                      ui->myView->setModel(queryModel);
                      QHeaderView *horizontalHeader = ui->myView->horizontalHeader();
                      horizontalHeader->setResizeContentsPrecision(QHeaderView::ResizeToContents);
                  });
                  update->setWindowTitle("Update Page");
                  update->setWindowIcon(QIcon(":/icon/icons/updatepage.png"));
                  update->setWindowFlags( Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint);
                  update->setModal(true);
                  update->setFixedSize(1000,150);
                  update->show();
              }else {
                  qDebug()<<"error index";
              }
          }
          
          void MainPage::deleteBtnClickedSlot(const QModelIndex &mindex)
          {
              if (mindex.isValid())
              {
                  int rowIndex = mindex.row();
                  qDebug() << "delete butonuna tıklandı. indeksi: " << rowIndex;
          
                  QModelIndex modelIndex = queryModel->index(rowIndex,0);
                  int ID = queryModel->data(modelIndex,Qt::DisplayRole).toInt();
          
                  QSqlQuery deleteQuery;
                  deleteQuery.prepare("DELETE FROM iplikler WHERE ID = :ID ");
                  deleteQuery.bindValue(":ID",ID);
          
                  if (deleteQuery.exec()) {
                      qDebug()<<"veri silindi";
                      queryModel->setQuery("SELECT * FROM iplikler",mydb);
                      queryModel->insertColumn(queryModel->columnCount());
                      queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Sil"));
                      queryModel->insertColumn(queryModel->columnCount());
                      queryModel->setHeaderData(queryModel->columnCount()-1, Qt::Horizontal, tr("Güncelle"));
                      ui->myView->setModel(queryModel);
                  }
                  else{
                      qDebug() << "Satır silinirken hata oluştu:" << deleteQuery.lastError().text();
                  }
              }else {
                  qDebug()<<"error index";
              }
          }
          
          /*int MainPage::sevkHesaplama()
          {
          }*/
          
          MainPage::~MainPage()
          {
              delete ui;
          }
          

          addpage.h file:

          #ifndef ADDPAGE_H
          #define ADDPAGE_H
          
          #include <QDialog>
          #include <QSqlQuery>
          #include <QSqlQueryModel>
          
          namespace Ui {
          class AddPage;
          }
          
          class AddPage : public QDialog
          {
              Q_OBJECT
          
          public:
              explicit AddPage(int objID, QWidget *parent = nullptr);
              ~AddPage();
          
              bool lnedit_cntrl();
              void add_Data_Clicked();
              bool insertData(const QString &tablename,const QMap<QString, QString>& iplikData);
              void iptalBtn_clicked();
          
          signals:
              void addData();
              void veriEklendi();
          
          private:
              Ui::AddPage *ui;
              QSqlQueryModel *myQueryModel;
              QSqlQueryModel *queryModel;
              QSqlQuery *myQuery;
              int n_ID;
          };
          
          #endif // ADDPAGE_H
          

          addpage.cpp file:

          #include "addpage.h"
          #include "ui_addpage.h"
          #include <QDebug>
          #include <QMessageBox>
          #include <QSqlError>
          #include <QHeaderView>
          
          AddPage::AddPage(int objID, QWidget *parent) :
              QDialog(parent),
              n_ID(objID),
              ui(new Ui::AddPage)
          {
              ui->setupUi(this);
          
              myQueryModel = new QSqlQueryModel();
              myQuery = new QSqlQuery();
          
              connect(ui->kaydetBtn,&QPushButton::clicked,this,&AddPage::add_Data_Clicked);
              connect(ui->iptalBtn,&QPushButton::clicked,this,&AddPage::iptalBtn_clicked);
          }
          
          AddPage::~AddPage()
          {
              delete ui;
          }
          
          bool AddPage::lnedit_cntrl()
          {
              QList<QLineEdit*> lineedits {ui->iplikkodLnedit,ui->ipliknameLnedit,ui->renkkodLnedit,ui->renknameLnedit,ui->carikodLnedit,ui->carinameLnedit,
                                           ui->miktarLnedit};
              for (QLineEdit *lineEdit : lineedits) {
                  if (lineEdit->text().isEmpty())
                  {
                      QMessageBox::critical(this,"Empty.!","Data is Empty!!!");
                      return false;
                  }
              }
          
              return true;
          }
          
          bool AddPage::insertData(const QString &tableName,const QMap<QString, QString>& iplikData)
          {
              QString queryString = "INSERT INTO " + tableName + " (";
          
              QStringList columnNames;
              QStringList valuePlaceholders;
          
              for (auto it = iplikData.constBegin(); it != iplikData.constEnd(); ++it)
              {
                  columnNames << it.key();
                  valuePlaceholders << "?";
              }
          
              queryString += columnNames.join(", ") + ") VALUES (" + valuePlaceholders.join(", ") + ")";
              myQuery->prepare(queryString);
          
              for (auto it = iplikData.constBegin(); it != iplikData.constEnd(); ++it)
              {
                  myQuery->addBindValue(it.value());
              }
          
              bool success = myQuery->exec();
          
              return success;
          }
          
          void AddPage::iptalBtn_clicked()
          {
              this->close();
          }
          
          void AddPage::add_Data_Clicked()
          {
              auto empty = lnedit_cntrl();
          
              if (!empty)
              {
                  QString _iplikkod = ui->iplikkodLnedit->text();
                  QString _iplikname = ui->ipliknameLnedit->text();
                  QString _renkkod = ui->renkkodLnedit->text();
                  QString _renkname = ui->renknameLnedit->text();
                  QString _carikod = ui->carikodLnedit->text();
                  QString _cariname = ui->carinameLnedit->text();
                  QString _miktar = ui->miktarLnedit->text();
                  QString _drezerv = ui->drezervLnedit->text();
                  QString _bmiktar = ui->bmiktarLnedit->text();
                  QString _ozelnot = ui->ozelNot->text();
          
                  QMap<QString, QString> iplikData;
                  QString tableName = "iplikler";
                  bool success = false;
          
                  iplikData["iplikkod"] = _iplikkod;
                  iplikData["iplikname"] = _iplikname;
                  iplikData["renkkod"] = _renkkod;
                  iplikData["renkname"] = _renkname;
                  iplikData["carikod"] = _carikod;
                  iplikData["cariname"] = _cariname;
                  iplikData["boyamamiktar"] = _bmiktar;
                  iplikData["deporezerv"] = _drezerv;
                  iplikData["miktar"] = _miktar;
                  iplikData["ozelnot"] = _ozelnot;
          
                  success = insertData(tableName,iplikData);
          
                  if(success)
                  {
                      emit veriEklendi();
                      qDebug()<<"Veriler eklendi";
                  }
                  else {
                      qDebug() << "Veri ekleme başarısız" << myQuery->lastError().text();
                  }
              }
          }
          
          /*
              if (notEmpty)
              {
                  QString _iplikkod = ui->iplikkodLnedit->text();
                  QString _iplikname = ui->ipliknameLnedit->text();
                  QString _renkkod = ui->renkkodLnedit->text();
                  QString _renkname = ui->renknameLnedit->text();
                  QString _carikod = ui->carikodLnedit->text();
                  QString _cariname = ui->carinameLnedit->text();
                  QString _miktar = ui->miktarLnedit->text();
                  QString _drezerv = ui->drezervLnedit->text();
                  QString _bmiktar = ui->bmiktarLnedit->text();
                  QString _ozelnot = ui->ozelNot->text();
          
                  QMap<QString, QString> iplikData;
                  QString tableName;
          
                  iplikData["iplikkod"] = _iplikkod;
                  iplikData["iplikname"] = _iplikname;
                  tableName= "iplikler";
                  bool success = insertData(tableName,iplikData);
                  if(!success)
                  {
                      qDebug() << "Veri ekleme başarısız:1 " << myQuery->lastError().text();
                  }
          
                  iplikData.clear();
                  iplikData["renkkod"] = _renkkod;
                  iplikData["renkname"] = _renkname;
                  tableName = "iplikler";
                  success = insertData(tableName,iplikData);
                  if(!success)
                  {
                      qDebug() << "Veri ekleme başarısız:2 " << myQuery->lastError().text();
                  }
          
                  iplikData.clear();
                  iplikData["carikod"] = _carikod;
                  iplikData["cariname"] = _cariname;
                  tableName = "iplikler";
                  success = insertData(tableName,iplikData);
                  if(!success)
                  {
                      qDebug() << "Veri ekleme başarısız:3 " << myQuery->lastError().text();
                  }
          
                  iplikData.clear();
                  iplikData["boyamamiktar"] = _bmiktar;
                  tableName = "iplikler";
                  success = insertData(tableName,iplikData);
                  if(!success)
                  {
                      qDebug() << "Veri ekleme başarısız:4 " << myQuery->lastError().text();
                  }
          
                  iplikData.clear();
                  iplikData["deporezerv"] = _drezerv;
                  tableName = "iplikler";
                  success = insertData(tableName,iplikData);
                  if(!success)
                  {
                      qDebug() << "Veri ekleme başarısız:5 " << myQuery->lastError().text();
                  }
          
                  iplikData.clear();
                  iplikData["miktar"] = _miktar;
                  tableName = "iplikler";
                  success = insertData(tableName,iplikData);
                  if(!success)
                  {
                      qDebug() << "Veri ekleme başarısız:6 " << myQuery->lastError().text();
                  }
          
                  iplikData.clear();
                  iplikData["ozelnot"] = _ozelnot;
                  tableName = "iplikler";
                  success = insertData(tableName,iplikData);
                  if(!success)
                  {
                      qDebug() << "Veri ekleme başarısız:7 " << myQuery->lastError().text();
                  }
          
                  MainPage *mainPage = qobject_cast<MainPage*>(this->parentWidget());
                  if (mainPage)
                  {
                      mainPage->updateTableView();
                  }
              }
          */
          
          Pl45m4P Offline
          Pl45m4P Offline
          Pl45m4
          wrote on last edited by Pl45m4
          #4

          @yy_pc_programmer said in Sending parameters with click event:

          I want to send a parameter to the addpage class when a click event is triggered. How can I do that?

          So AddPage is a QDialog?! (maybe you should have mentioned that, instead of posting a bunch of unrelated code)

          In addition to @JonB and @jsulm :
          What do you want to send? To where? And where + when does the click happen?

          Edit:

          After scrolling through your code, I found this

          void MainPage::addBtn_Page_Clicked()
          {
              sendParameterToAddPage(mindex);
          }
          

          and this

          void MainPage::sendParameterToAddPage(QModelIndex &mindex){
          
                   // ......
                   AddPage *addpag = new AddPage(objID);
                   // .......
                   addpag->setModal(true);
                   addpag->setWindowTitle("Add Page");
                   addpag->setWindowIcon(QIcon(":/icon/icons/add.png"));
                   addpag->setWindowFlags( Qt::WindowMinimizeButtonHint);
                   addpag->adjustSize();
                   addpag->setFixedSize(1000,150);
                   addpag->show();
          
          

          First of all, you know that you create a new AddPage dialog every time, which leaks memory (as far as I can see) and never use the AddPage *addpg; member var from your MainPage?!

          If you want to pass something while you create your dialog, you can simply add a function to your dialog class.
          The current way looks like bad design, esp. this in AddPage

          MainPage *mainPage = qobject_cast<MainPage*>(this->parentWidget());
          if (mainPage)
           {
                  mainPage->updateTableView();
            }
          

          If debugging is the process of removing software bugs, then programming must be the process of putting them in.

          ~E. W. Dijkstra

          yy_pc_programmerY 1 Reply Last reply
          2
          • yy_pc_programmerY yy_pc_programmer has marked this topic as solved on
          • Pl45m4P Pl45m4

            @yy_pc_programmer said in Sending parameters with click event:

            I want to send a parameter to the addpage class when a click event is triggered. How can I do that?

            So AddPage is a QDialog?! (maybe you should have mentioned that, instead of posting a bunch of unrelated code)

            In addition to @JonB and @jsulm :
            What do you want to send? To where? And where + when does the click happen?

            Edit:

            After scrolling through your code, I found this

            void MainPage::addBtn_Page_Clicked()
            {
                sendParameterToAddPage(mindex);
            }
            

            and this

            void MainPage::sendParameterToAddPage(QModelIndex &mindex){
            
                     // ......
                     AddPage *addpag = new AddPage(objID);
                     // .......
                     addpag->setModal(true);
                     addpag->setWindowTitle("Add Page");
                     addpag->setWindowIcon(QIcon(":/icon/icons/add.png"));
                     addpag->setWindowFlags( Qt::WindowMinimizeButtonHint);
                     addpag->adjustSize();
                     addpag->setFixedSize(1000,150);
                     addpag->show();
            
            

            First of all, you know that you create a new AddPage dialog every time, which leaks memory (as far as I can see) and never use the AddPage *addpg; member var from your MainPage?!

            If you want to pass something while you create your dialog, you can simply add a function to your dialog class.
            The current way looks like bad design, esp. this in AddPage

            MainPage *mainPage = qobject_cast<MainPage*>(this->parentWidget());
            if (mainPage)
             {
                    mainPage->updateTableView();
              }
            
            yy_pc_programmerY Offline
            yy_pc_programmerY Offline
            yy_pc_programmer
            wrote on last edited by
            #5

            @Pl45m4 @JonB @jsulm THANK YOU SO MUCH FOR ANSWER

            1 Reply Last reply
            0

            • Login

            • Login or register to search.
            • First post
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • Users
            • Groups
            • Search
            • Get Qt Extensions
            • Unsolved