Installation and getting started with first app
-
if i remove that line and run the code I am not getting my Window displayed and here is the ouput..
Starting E:\Bose\Qt playground\IDT_Demo_UI-build-desktop\debug\IDT_Demo_UI.exe...
E:\Bose\Qt playground\IDT_Demo_UI-build-desktop\debug\IDT_Demo_UI.exe exited with code -1073741819 -
code -1073741819 = 0xC0000005. On windows this means an access violation. Seems like your UI is not initialized properly or messed up in some way....
-
perfect analysis..
I have moved this line to bottom of the code like this..
@
IDT_MainWindow::IDT_MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::IDT_MainWindow){
// my code here...ui->setupUi(this);
}
@now i moved it to top and works fine..thanks a ton
[EDIT: code formatting, please use @-tags or the editor button, Volker]
-
only one child item is being shown to my TreeWidget..please look into my code and lemme know where I went wrong !!
@IDT_MainWindow::IDT_MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::IDT_MainWindow){
ui->setupUi(this);ui->treeWidgetDrives->setColumnCount(1); QStringList strlstHeaders; strlstHeaders<<tr("Storage Drives"); ui->treeWidgetDrives->setHeaderLabels(strlstHeaders); SetupTreeItems();
}
void IDT_MainWindow::SetupTreeItems()
{
QTreeWidgetItem *treeItems = new QTreeWidgetItem(ui->treeWidgetDrives);
treeItems->setText(0,tr("SystemDrives"));
QTreeWidgetItem *treeChildItems = new QTreeWidgetItem(treeItems);
QDir dir;
dir.setFilter(QDir::Drives);QFileInfoList roots = dir.drives(); for(int i=0 ; i<roots.count() ; ++i) { QFileInfo fiDrives = roots.at(i); QString strDrive = fiDrives.absoluteFilePath(); treeChildItems->setText(i,strDrive); }
}@
-
You must create a new item in your loop. You just overwrite the on you have in each iteration.
-
Your loop keeps on updating the text of the same tree item. Do you really expect to see more of them then?
-
you mean like this ??
@for(int i=0 ; i<roots.count() ; ++i)
{
treeChildItems = new QTreeWidgetItem(treeItems);
QFileInfo fiDrives = roots.at(i);
QString strDrive = fiDrives.absoluteFilePath();
treeChildItems->setText(i,strDrive);
}@ -
[quote author="Thomas Kennedy" date="1301584395"]you mean like this ??
@for(int i=0 ; i<roots.count() ; ++i)
{
treeChildItems = new QTreeWidgetItem(treeItems);
QFileInfo fiDrives = roots.at(i);
QString strDrive = fiDrives.absoluteFilePath();
treeChildItems->setText(i,strDrive);
}@
[/quote]You can try it to get the answer :-)
-
tried...it added an 'empty item' at 0th position,and 'c:' at 1st..and no more :-(
-
So... you need to aquire some debugging skills... Just try to follow what happens in your code. Don't guess: measure instead. Try for instance to insert statements like this at every relevant point in your function, and look at the output:
@
qDebug() << LINE;
@ -
:-)) ok..will do that..
-
Of course you must have an empty first entry, because you create this one outside your loop (line 21 in your original code snippet).
This is the compactified working version:
@
void FancyClass::populate() {
ui->treeWidget->setColumnCount(1);
QStringList headers;
headers << "Storage Device";
ui->treeWidget->setHeaderLabels(headers);QTreeWidgetItem *rootItem = new QTreeWidgetItem(ui->treeWidget); rootItem->setText(0, "SystemDevice"); foreach(QFileInfo drive, QDir::drives()) { QTreeWidgetItem *driveItem = new QTreeWidgetItem(rootItem); driveItem->setText(0, drive.absoluteFilePath()); }
}
@ -
/me is thinking that instead of building a tree like that himself, he would use a QFileSystemModel instead...
-
thanks a lot...I will try with QFileSystemModel too..
-
"The program can't start because mingwm10.dll is missing from your computer.Try reinstalling the program to fix this problem."
..i am getting this error when i tried running my application in stand alone mode...any help ??
-
YOu are startin g without QtCreator, right?
Did you try to search the forum for answers?
see this "post":http://developer.qt.nokia.com/forums/viewthread/4869
-
yes Gerolf..I searched..everybody says that we need to set the invironment varioables..I did that too but of no use..
-
put the needed dlls beside your exe or set the PATH environment variable to contain the path to mingw10.dll.
-
I have set the PATH environment variable..but it says QtCode4.dll is missing !!
-
QtCode4? what's this? or do you mean QtCore4.dll?
Then the path to this dll is miossinmg :-)
You have to add it also.