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
Forum Updated to NodeBB v4.3 + New Features

Sending parameters with click event

Scheduled Pinned Locked Moved Solved General and Desktop
5 Posts 4 Posters 283 Views 2 Watching
  • 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