Quantcast
Channel: Jobs
Viewing all articles
Browse latest Browse all 18427

SOLVED [Find an QstandardItemModel in tabWidget !

$
0
0
hi everybody ! i’ve an problem to find my QStandardItemModel in tabWidget. I use Tableview to see QstandardItemModel, i have created 2 tableView by using a QtabWidget. I would like read th item in each tableView, but i can’t. It’s only possible in the last created. i am using QObject::findchild(), but it doesn’t operate.(it’s ok if i repalce my QtableView & QStandardItemModel by Qlabel !) se may code below, thanks for your help. (be aware with my english ;-) ) i dont have include the main here, but it is classical. my .cpp #include "main_window.h"   main_window::main_window(QWidget *parent) : QMainWindow(parent) {   //Main Window     QMdiArea *mdi = new QMdiArea;     setCentralWidget(mdi);     this->setWindowTitle("Main Window");     this->resize(550,400);   //command panel     QGroupBox *cmd = new QGroupBox("Add Tab");     cmd->setTitle("Command Panel");     cmd->setFixedWidth(250);       //init command panel     lbl_cmd = new QLabel("Nom de tabulation");     lbl_cmd->setAlignment(Qt::AlignHCenter);     str_lbl = "empty";     lbl_tab0 = new QLabel;     lbl_tab1 = new QLabel;     lblTab();       //button command panel     QPushButton *exit = new QPushButton("Exit");     QPushButton *table_buton = new QPushButton("TableView");     QPushButton *lbl_buton = new QPushButton("lblTab display");     QPushButton *stdItmModel_buton = new QPushButton("stdItmModel");     QPushButton *ouv_fichier_buton = new QPushButton("Not Use");   //TableView display     tabu = new QTabWidget;   //layout command panel     QHBoxLayout *h_bouton1 = new QHBoxLayout;     h_bouton1->addWidget(table_buton);h_bouton1->addWidget(lbl_buton);       QHBoxLayout *h_bouton2 = new QHBoxLayout;     h_bouton2->addWidget(stdItmModel_buton);h_bouton2->addWidget(ouv_fichier_buton);       QVBoxLayout *v_cmd = new QVBoxLayout;     v_cmd->addWidget(lbl_cmd);     v_cmd->addWidget(lbl_tab0);     v_cmd->addWidget(lbl_tab1);     v_cmd->addLayout(h_bouton1);     v_cmd->addLayout(h_bouton2);     v_cmd->addWidget(exit);     cmd->setLayout(v_cmd);   //Layout main window     QHBoxLayout *h_lay = new QHBoxLayout;     h_lay->addWidget(tabu);     h_lay->addWidget(cmd);     mdi->setLayout(h_lay);   //Connect     connect(table_buton,SIGNAL(clicked()),this,SLOT(tableView()));     connect(exit,SIGNAL(clicked()),this,SLOT(close()));     connect(lbl_buton,SIGNAL(clicked()),this,SLOT(str_lbl_chg()));     connect(stdItmModel_buton,SIGNAL(clicked()),this,SLOT(stdItmModel())); }   void main_window::tableView() {     for (int l(0);l<2;l++) //create 2 tableView     {         table = new QTableView;         QString str;         modele = new QStandardItemModel(5,2);         modele->setHeaderData(0,Qt::Horizontal,"Col 0");         modele->setHeaderData(1,Qt::Horizontal,"Col 1");         modele->setHeaderData(0,Qt::Vertical,"L 0");         modele->setHeaderData(1,Qt::Vertical,"L 1");         modele->setHeaderData(2,Qt::Vertical,"L 2");         modele->setHeaderData(3,Qt::Vertical,"L 3");         modele->setHeaderData(4,Qt::Vertical,"L 4");                 for (int loopA(0);loopA<5;loopA++) //filing tablView         {             QString strLoopA;             stdIt = new QStandardItem;             stdIt->setText("value tab"+str.setNum(l)+" "+strLoopA.setNum(loopA)+"x0");             modele->setItem(loopA,0,stdIt);             stdIt = new QStandardItem;             stdIt->setText("value tab "+str.setNum(l)+" "+strLoopA.setNum(loopA)+"x1");             modele->setItem(loopA,1,stdIt);         }         table->setModel(modele);         tabu->addTab(table,"tab "+str.setNum(l)); //add TabWidget     } } void main_window::lblTab() //display in command panel {     lbl_tab0->setText("tab0 value of row 1,col 0 : "+str_lbl);     lbl_tab1->setText("tab1 value of row 2,col 1 : "+str_lbl); } void main_window::str_lbl_chg() //mofidifcation command panel display {     //str_lbl = "test ok"; // remove//before str_lbl to performed lbl modification test     str_lbl = stdItmModel()->item(1,0)->text();     str_lbl = stdItmModel()->item(2,1)->text();     lblTab(); } QStandardItemModel *main_window::stdItmModel()  // to return QStandardItemModel in active tabWidget {     return tabu->currentWidget()->findChild <QStandardItemModel *>(); } my .h #ifndef MAIN_WINDOW_H #define MAIN_WINDOW_H   #include <QApplication> #include <QDialog> #include <QFile> #include <QFormLayout> #include <QGroupBox> #include <QHBoxLayout> #include <QInputDialog> #include <QLabel> #include <QMainWindow> #include <QMdiArea> #include <QMessageBox> #include <QPushButton> #include <QStandardItem> #include <QStandardItemModel> #include <QTableView> #include <QTabWidget> #include <QTextStream> #include <QLineEdit> #include <QVBoxLayout>   class main_window : public QMainWindow {     Q_OBJECT public:     main_window(QWidget *parent = 0);     QLabel *lbl_cmd, *lbl_tab0, *lbl_tab1;     QString *str, msgbox;     QStandardItem *stdIt;     QStandardItemModel *modele;     QString str_lbl;     QTableView *table;     QTabWidget *tabu;   signals:     public slots:     void tableView();     void lblTab();     void str_lbl_chg();       QStandardItemModel *stdItmModel(); };   #endif // MAIN_WINDOW_H

Viewing all articles
Browse latest Browse all 18427

Trending Articles