Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
Updating QListView from child dialog
subrat17june last edited by
I am new to QT programming and this forum also.
So please spare any misinterpretations.
I have a main window application. when launched, the main application calls a function to search system drives, find particular files and update in the list view. works fine.
i am launching a child dialog from the main window. and a task is to update the main window list view. when i am calling the main window update function to update the list view i am getting a segmentation fault.
i am pasting the code below...
please can i get some help on how to do it properly, or what is the error i am doing.
myapp::myapp(QWidget *parent):QMainWindow(parent),ui(new Ui::myapp)
// setting the model to the current dialog , value declared in header
model = new QStandardItemModel(this);
// function to enumerate and update volumes to list
// function gets specific files from all the local drives and calls
The updateListView(passing file name as parameter)
// function to launch the dialog from main application
// function to insert the value of file into the QFileList
void myapp:: updateListView (QString file)
int row = model->rowCount();
QStandardItem * item = new QStandardItem(QIcon("C:\Users\Test\Desktop\med iaa\red.bmp"),file);
WORKS FINE ON APPLICATION INITIALIZATION
But when called from a child dialog, i.e. I am calling the updateListView(QString fie) from the child dialog, which is launched by the above main application, segmentation error is caused.
Code I am using to call the main application function from child dialog is
bool myDialog::updateGui(QString path)
Function is called OK, but throws segmentation error in Main Applications, updateListView()
Hi and welcome to devnet.
There are several things that are wrong here:
- you don't check that parent is valid (and in your case it won't be since you don't give a parent to your dialog)
- you use c style cast rather than at least dynamic_cast and since it's a QObject use qobject_cast
- you are trying to modify a parent from a children (this is bad design)
- Give your dialog a getter for the path
- Update myapp once your returned from the dialog.
Since it's a path, I presume it's file system related, thus did you had a look at QFileDialog ?
Hope it helps