Installation and getting started with first app



  • For linux help, you're on the wrong channel. Sorry. This is not Qt related anymore.



  • I agree..but it happened while i tried to install Qt on Linux...help is appreciated more





  • thanks amn..I will go through that link now..

    btw I have this compiler error when I compiled my demo app on windows using QTreeView which I am planning to display the SystemStorage info

    In file included from ..\IDT_Demo_UI\main.cpp:2:
    ..\IDT_Demo_UI/idt_mainwindow.h:23: error: ISO C++ forbids declaration of 'QSystemStorageInfo' with no type
    ..\IDT_Demo_UI/idt_mainwindow.h:23: error: expected ';' before '*' token



  • its say were you have to look!
    ĺine 23 of the file idt_mainwindow.h, you didnt end the line with ; or/and you didnt include QSystemStorageInfo



  • Or you only declared the type like
    @
    class QSystemStorageInfo;
    @
    and use it as member. This is not allowed. If you use it for pointers, declaration like above should work.



  • Gerolf...I have included
    #include <QSystemStorageInfo>

    and this is the complete compilation report


    @
    Running build steps for project IDT_Demo_UI...
    Configuration unchanged, skipping qmake step.

    Starting: "C:\QtSDK\mingw\bin\mingw32-make.exe" -w

    mingw32-make: Entering directory `E:/Bose/Qt playground/IDT_Demo_UI-build-desktop'

    C:/QtSDK/mingw/bin/mingw32-make -f Makefile.Debug

    mingw32-make[1]: Entering directory `E:/Bose/Qt playground/IDT_Demo_UI-build-desktop'

    g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"c:\QtSDK\Desktop\Qt\4.7.2\mingw\include\QtCore" -I"c:\QtSDK\Desktop\Qt\4.7.2\mingw\include\QtGui" -I"c:\QtSDK\Desktop\Qt\4.7.2\mingw\include" -I"c:\QtSDK\Desktop\Qt\4.7.2\mingw\include\ActiveQt" -I"debug" -I"." -I"..\IDT_Demo_UI" -I"." -I"c:\QtSDK\Desktop\Qt\4.7.2\mingw\mkspecs\win32-g++" -o debug\main.o ..\IDT_Demo_UI\main.cpp

    In file included from ..\IDT_Demo_UI\main.cpp:2:

    ..\IDT_Demo_UI/idt_mainwindow.h:4:30: error: QSystemStorageInfo: No such file or directory

    In file included from ..\IDT_Demo_UI\main.cpp:2:

    ..\IDT_Demo_UI/idt_mainwindow.h:23: error: ISO C++ forbids declaration of 'QSystemStorageInfo' with no type

    ..\IDT_Demo_UI/idt_mainwindow.h:23: error: expected ';' before '*' token

    mingw32-make[1]: Leaving directory `E:/Bose/Qt playground/IDT_Demo_UI-build-desktop'

    mingw32-make: Leaving directory `E:/Bose/Qt playground/IDT_Demo_UI-build-desktop'

    mingw32-make[1]: *** [debug/main.o] Error 1

    mingw32-make: *** [debug] Error 2

    The process "C:\QtSDK\mingw\bin\mingw32-make.exe" exited with code 2.

    Error while building project IDT_Demo_UI (target: Desktop)
    @

    When executing build step 'Make'


    and this is .h file

    @
    #ifndef IDT_MAINWINDOW_H
    #define IDT_MAINWINDOW_H

    #include <QSystemStorageInfo>
    #include <QtGui>
    #include <QMainWindow>

    namespace Ui {
    class IDT_MainWindow;
    }

    class IDT_MainWindow : public QMainWindow
    {
    Q_OBJECT

    public:
    explicit IDT_MainWindow(QWidget *parent = 0);
    ~IDT_MainWindow();

    private:
    Ui::IDT_MainWindow *ui;

    QSystemStorageInfo *sti;
    

    };

    #endif // IDT_MAINWINDOW_H

    @




  • please wrap your code with @ tag



  • I am realy sorry vinb...I didn't get you !! how to rap with a tag ??



  • i dont think "QSystemStorageInfo" exist in Qt,
    only:
    QSysInfo
    QSystemLocale
    QSystemSemaphore
    QSystemTrayIcon

    If it is your own made you have to use "" instead of <>.



  • use @
    then your code and end with "@" without the ""



  • Your problem lies more in the beginning of your build output:

    @
    ..\IDT_Demo_UI/idt_mainwindow.h:4:30: error: QSystemStorageInfo: No such file or directory
    @

    where does QSystemStorageInfo come from?

    If I googled correctly, it's part of QtMobility, did you install that? did you add the needed include paths in the pro file?



  • ok...then which class should i use to get the system storage info if it is for desktop application ?



  • Afaik QtMobility may also be used on the Desktop. But you have to set your include paths.



  • please guide me how to set that ...



  • I said Afaik, not that I did it before ;-)

    I never used QtMobility



  • [quote author="Thomas Kennedy" date="1301490967"]ok...then which class should i use to get the system storage info if it is for desktop application ?[/quote]

    I don't know what info you want to get from QSystemStorageInfo, but maybe "QDesktopServices::storageLocation() ":http://doc.qt.nokia.com/4.7/qdesktopservices.html#storageLocation provides what you need.


  • Moderators

    In order to use the QSystemStorageInfo class from Mobility, be sure that in your .pro file you have included the lines

    @
    CONFIG += mobility
    MOBILITY += systeminfo
    @



  • Thanks a lot...

    without changing .pro file I am trying with QDir::Drives()..I will update you soon about my results..before that I have another query...

    I have placed my controls on the main window by opening 'mainwindow.ui' in design mode..how would I create control variables for those controls in my code using QTCreator ?



  • "control variables"? You mean you need a pointer to them?

    @
    m_ui->myCoolLineEdit->setText("I'm so cool!");
    @

    works for me. myCoolLineEdit is of course the name you gave the widget in Designer, and m_ui is the member variable that holds the UI class you created.



  • excellent..now i understood this part Andre..I have creaed a QTreeWidget on my MainWindow and coded like tihs..

    @
    ui->treeWidgetDrives = new QTreeWidget();
    ui->treeWidgetDrives->setColumnCount(1);
    QStringList strlstHeaders;
    strlstHeaders<<tr("Storage Drives");
    ui->treeWidgetDrives->setHeaderLabels(strlstHeaders);
    @

    ...when i run my code nothing is happened to my TreeWidget(no header is assigned)..instead it is showing the properties which i set from 'Edit Tree Widget' dialog !!!

    [EDIT: code formatting, please use @-tags, Volker]



  • The tree widget is automatically created for you. Just remove the first line of your snippet.



  • 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.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.