I'm writing phone book software(for educational purposes) I have 1 tableView,one QStandardItemModel,4 buttons(add,edit,delete,clear all)
here is a picture:
Capture.JPG
add button works correctly. But Edit button doesn't work correctly,as I want.
I add one person's number with Add button and then when I want to edit contact,I press edit Button but suddenly it crashes.
Capture.JPG
But,when I add new contact directly in tableView without add button, and then press Edit. That works. I can edit contact without any problems.
Capture.JPG
So,problem is when new contact is added via Add button. I can't see what is the problem.
source code of add and edit buttons
void MainWindow::on_pushButtonAdd_clicked()
{
ChangeDialog dg;
dg.setWindowTitle(tr("Add new contact"));
if(dg.
exec() == QDialog::Accepted){ list << dg.GetList();
for(int i = 0; i < 4;i++){
item->setEditable(false);
model->setItem(rowCount,i,item);
}
}
rowCount++;
}
void MainWindow::on_pushButtonEdit_clicked()
{
ChangeDialog dg;
dg.setWindowTitle(tr("Edit contact"));
for(int i = 0; i < 4; i++){
Slist.append(model->item(rowCount,i)->text());
//QMessageBox::information(this,"title","asd");
}
dg.SetList(Slist);
if(dg.
exec() == QDialog::Accepted){ list2 << dg.GetList();
for(int i = 0; i < 4;i++){
item2->setEditable(false);
model->setItem(rowCount,i,item2);
}
}
}
void MainWindow::on_pushButtonAdd_clicked()
{
ChangeDialog dg;
dg.setWindowTitle(tr("Add new contact"));
QStringList list;
if(dg.exec() == QDialog::Accepted){
list << dg.GetList();
for(int i = 0; i < 4;i++){
QStandardItem *item = new QStandardItem(QString("%1").arg(list.at(i)));
item->setEditable(false);
model->setItem(rowCount,i,item);
}
}
rowCount++;
}
void MainWindow::on_pushButtonEdit_clicked()
{
ChangeDialog dg;
dg.setWindowTitle(tr("Edit contact"));
QStringList Slist;
for(int i = 0; i < 4; i++){
Slist.append(model->item(rowCount,i)->text());
//QMessageBox::information(this,"title","asd");
}
dg.SetList(Slist);
QStringList list2;
if(dg.exec() == QDialog::Accepted){
list2 << dg.GetList();
for(int i = 0; i < 4;i++){
QStandardItem *item2 = new QStandardItem(QString("%1").arg(list2.at(i)));
item2->setEditable(false);
model->setItem(rowCount,i,item2);
}
}
}
To copy to clipboard, switch view to plain text mode
Bookmarks