maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   Development (https://talk.maemo.org/forumdisplay.php?f=13)
-   -   I'm learning with Qt and I have a question (https://talk.maemo.org/showthread.php?t=47962)

nath 2010-03-24 14:56

Re: I'm learning with Qt and I have a question
 
Your curly brackets aren't matching. You can easily see that in the main.cpp where you have two closing ones right after each other.

emeni 2010-03-24 15:00

Re: I'm learning with Qt and I have a question
 
Quote:

Originally Posted by krk969 (Post 577237)
QT is mainly a graphical toolkit that will allow you to create cross platform code with graphical interfaces, you can use it for backend server coding also, if you like :D
QT is based on C++, so if you know C++ ( even some basics ), you should feel at home.

Nice, I actually haven't programed in C++ since... ages :))) I'm going to give it a try :D

tdesws 2010-03-24 15:06

Re: I'm learning with Qt and I have a question
 
If I remove one i get theese errors:
C:/Users/Edvinas/Documents/InteractiveHelloWorld/main.cpp:2: In file included from main.cpp:2:

C:/Users/Edvinas/Documents/InteractiveHelloWorld/mainwindow.h:24: error: expected unqualified-id before '{' token

C:/Users/Edvinas/Documents/InteractiveHelloWorld/main.cpp:10: error: expected '}' at end of input

C:/Users/Edvinas/Documents/InteractiveHelloWorld/main.cpp:10: error: expected unqualified-id at end of input

tdesws 2010-04-02 10:03

Re: I'm learning with Qt and I have a question
 
Anyone? :(

Robb 2010-04-02 10:17

Re: I'm learning with Qt and I have a question
 
Quote:

Originally Posted by tdesws (Post 580417)
now it looks like that:

mainwindow.h:
Code:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow {
    Q_OBJECT
public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

public slots:
    void buttonClickHandler();

protected:
    void changeEvent(QEvent *e);

private:

    {
    Ui::MainWindow *ui;
    // member functions
    void MainWindow::initMyWordList();
    // member variables
    static int _clickCounter;
    QStringList _wordList;
    }

//private slots:
    //void on_Button_clicked();


#endif // MAINWINDOW_H

main.cpp:
Code:

#include <QtGui/QApplication>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}
}

mainwindows.cpp:
Code:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QLabel>
int MainWindow::_clickCounter = 0;
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::changeEvent(QEvent *e)
{
    QMainWindow::changeEvent(e);
    switch (e->type()) {
    case QEvent::LanguageChange:
        ui->retranslateUi(this);
        break;
    default:
        break;
    }
}

void MainWindow::buttonClickHandler()
{
}

void MainWindow::on_Button_clicked()
{
error = initMyWordList();
if ( error )
  do whatever you feel like
}

//init my word file
void MainWindow::initMyWordList()
{
        QFile * wordFile = new QFile("C:\Users\Edvinas\Desktop\MAEMO\N900\Development\test");
        wordFile->open(QIODevice::ReadOnly);

        QTextStream stream(wordFile);

        // create the map of channel and date until which data is available
        while ( !stream.atEnd() )
        {
                QString word = stream.readLine();
                _wordList << word;
        }

        wordFile->close();
}

void MainWindow::on_Button_clicked()
{
      ui->label->setText(QString("the word of the day is %1").arg(_wordList[_clickCounter++]) );
}

And i get:

C:/Users/Edvinas/Documents/InteractiveHelloWorld/main.cpp:2: In file included from main.cpp:2:

C:/Users/Edvinas/Documents/InteractiveHelloWorld/mainwindow.h:24: error: expected unqualified-id before '{' token

C:/Users/Edvinas/Documents/InteractiveHelloWorld/main.cpp:10: error: expected unqualified-id at end of input

Remove the curlys from: main.cpp
and add them to: mainwindow.h

Like someone said before: Compare and match the curly braces

Code:

private:

    { //REMOVE!!
    Ui::MainWindow *ui;
    // member functions
    void MainWindow::initMyWordList();
    // member variables
    static int _clickCounter;
    QStringList _wordList;
    } //REMOVE!!

Remove the curly's from above

arne.anka 2010-04-02 10:25

Re: I'm learning with Qt and I have a question
 
Quote:

Originally Posted by tdesws (Post 580417)
mainwindow.h:
Code:

class MainWindow : public QMainWindow {
...
}
#endif // MAINWINDOW_H


you are missing the closing bracket. put one } before #endif

Quote:

main.cpp:
Code:

#include <QtGui/QApplication>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
...
}


here you got one } to much. remove the last }.

every opening bracket (curly, square, round) has to be closed again.
check your ide's or editor's settings -- almost all should have some kind of visual markers helping you to detect those trivial and easily overlocked syntactical errors.

tdesws 2010-04-05 20:01

Re: I'm learning with Qt and I have a question
 
Ok, now i get only this:

C:/Users/Edvinas/Documents/InteractiveHelloWorld/mainwindow.h:11: error: expected unqualified-id before '{' token

C:/Users/Edvinas/Documents/InteractiveHelloWorld/mainwindow.h:11: error: expected unqualified-id before '{' token

here's mainwindow.h:

Quote:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow;
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();

public slots:
void buttonClickHandler();

protected:
void changeEvent(QEvent *e);

private:
Ui::MainWindow *ui;
// member functions
void MainWindow::initMyWordList();
// member variables
static int _clickCounter;
QStringList _wordList;

//private slots:
//void on_Button_clicked();

}
#endif // MAINWINDOW_H



krk969 2010-04-05 20:19

Re: I'm learning with Qt and I have a question
 
class MainWindow : public QMainWindow;

remove the semicolon from the end of the line, you put a semicolon only when you finish a definition or statement, here the class definition isnt over.
Put the semi-colon at the end of the mainwindow.h after the last curly brace marking the end of the class definition.

tdesws 2010-04-06 11:15

Re: I'm learning with Qt and I have a question
 
Quote:

Originally Posted by krk969 (Post 596780)
class MainWindow : public QMainWindow;

remove the semicolon from the end of the line, you put a semicolon only when you finish a definition or statement, here the class definition isnt over.
Put the semi-colon at the end of the mainwindow.h after the last curly brace marking the end of the class definition.

Did that, but now I get

C:/Users/Edvinas/Documents/InteractiveHelloWorld/mainwindow.h:26: error: extra qualification 'MainWindow::' on member 'initMyWordList'

arne.anka 2010-04-06 11:21

Re: I'm learning with Qt and I have a question
 
do what the error says, remove the "extra qualification 'MainWindow::' " at line 26:

void MainWindow::initMyWordList();

should be

void initMyWordList();

in your header you are declaring the class itself, no need for the namespace here.


All times are GMT. The time now is 12:32.

vBulletin® Version 3.8.8