Installation and getting started with first app
-
wrote on 31 Mar 2011, 13:08 last edited by
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 -
wrote on 31 Mar 2011, 13:11 last edited by
code -1073741819 = 0xC0000005. On windows this means an access violation. Seems like your UI is not initialized properly or messed up in some way....
-
wrote on 31 Mar 2011, 13:18 last edited by
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]
-
wrote on 31 Mar 2011, 15:07 last edited by
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); }
}@
-
wrote on 31 Mar 2011, 15:11 last edited by
You must create a new item in your loop. You just overwrite the on you have in each iteration.
-
wrote on 31 Mar 2011, 15:11 last edited by
Your loop keeps on updating the text of the same tree item. Do you really expect to see more of them then?
-
wrote on 31 Mar 2011, 15:13 last edited by
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);
}@ -
wrote on 31 Mar 2011, 15:15 last edited by
[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 :-)
-
wrote on 31 Mar 2011, 15:17 last edited by
tried...it added an 'empty item' at 0th position,and 'c:' at 1st..and no more :-(
-
wrote on 31 Mar 2011, 15:23 last edited by
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;
@ -
wrote on 31 Mar 2011, 15:24 last edited by
:-)) ok..will do that..
-
wrote on 31 Mar 2011, 15:36 last edited by
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()); }
}
@ -
wrote on 31 Mar 2011, 15:39 last edited by
/me is thinking that instead of building a tree like that himself, he would use a QFileSystemModel instead...
-
wrote on 1 Apr 2011, 05:17 last edited by
thanks a lot...I will try with QFileSystemModel too..
-
wrote on 1 Apr 2011, 06:41 last edited by
"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 ??
-
wrote on 1 Apr 2011, 07:12 last edited by
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
-
wrote on 1 Apr 2011, 07:34 last edited by
yes Gerolf..I searched..everybody says that we need to set the invironment varioables..I did that too but of no use..
-
wrote on 1 Apr 2011, 07:49 last edited by
put the needed dlls beside your exe or set the PATH environment variable to contain the path to mingw10.dll.
-
wrote on 1 Apr 2011, 08:53 last edited by
I have set the PATH environment variable..but it says QtCode4.dll is missing !!
-
wrote on 1 Apr 2011, 08:58 last edited by
QtCode4? what's this? or do you mean QtCore4.dll?
Then the path to this dll is miossinmg :-)
You have to add it also.
51/71