A basic C++ question about Actions
I see how works the menu system at tutorial 'recent files'.
( This is a piece of code)
at .h
Code:
enum { MaxRecentFiles = 5 };
QAction *recentFileActs
[MaxRecentFiles
];
at .cpp
Code:
recentFilesActs
[0]= new QAction("a_string",
this);
There is not problem in having recentFileActs with 5 'reserved' QActions
But, if I didnt want to have 'reserved' space and want to create at .cpp ?
It is a basic c++ question but I dont know how to do it. It is related with 'How can I create an array of objects that have a constructor parameter'.
At h.file I want : QAction *recentFileActs[];
and at .cpp : ???? code for variable and exact value
I can't write recentFileActs = new QActions(20);
1.- Have I to create a QAction by pointer and later to pass it to recentFileActs[0] ?
2.- In that case must I to keep in mind that I have to delete the objects created?
Thanks
Re: A basic C++ question about Actions
Use QVector instead of a straight array
Re: A basic C++ question about Actions
With the original tutorial and the:
Code:
QVector<QAction *> recentFileActs; // if you want a particular size set at run time. Look at QVector::resize()
QList<QAction*> recentFileActs; // if you want an open ended list (not likely for an MRU list)
suggestions you need to make sure the QActions are deleted. Usually this is by giving each QAction a QObject parent when you construct them (the "this" in your second code snippet).