Slot



  • Hi Everybody...Warm greetings to All.I need a help from you guys.Am very new to coding and presently my work is with Qt.So I started with it and I have a problem in connecting the slot.

    My idea is to connect a lineEdit to the LCD,whenever I type a number in the lineEdit,the LCD should display the same.
    Am using QtCreator for doing this.

    Please help me to proceed further.

    Thank you All in advance.



  • Post a small code example of what you are trying to do, so that we may help you with the details.



  • I got it done with the QtCreator.
    I used the following code to validate my lineEdit to accept only numbers.

    QRegExp rx( "^[0-9]*$" );
    QValidator *validator = new QRegExpValidator(rx, this);
    lineEdit->setValidator( validator );

    Thank You



  • How to check the overflow of LCD in Qt?





  • [quote author="Revu" date="1298007867"]I got it done with the QtCreator.
    I used the following code to validate my lineEdit to accept only numbers.

    QRegExp rx( "^[0-9]*$" );
    QValidator *validator = new QRegExpValidator(rx, this);
    lineEdit->setValidator( validator );

    Thank You[/quote]

    You could also use "QSpinBox":http://doc.qt.nokia.com/4.7/qspinbox.html instead of a line editor or use a ready built "QIntValidator":http://doc.qt.nokia.com/4.7/qintvalidator.html on your line edit.



  • Go through this link...This may be helpful to you..

    http://doc.qt.nokia.com/4.7/tutorials-addressbook.html



  • @All thank you



  • Now I have a new problem.

    I have two forms in QtCreator.How do I link both?
    A click of a button on the main window should display the other window.
    Can I do this by saving both the forms into the same folder and then create a slot in the mainwindow?

    Please help me...
    Reply at the earliest will help me a lot.

    Thanks in advance



  • First: for new questions, a new thread would be fine, so the topics are separated.

    Regarding your problem: You have a class that implements your form. In this class you have the slots for the buttons. There you can show the other form, same as showing dialogs etc.



  • @Geroif:ok sorry for that...

    I thought this is concerned with slot so i could post here..

    Well still am not clear about the solution.It would be better if it is in steps.

    Thank you



  • The normal way of using designer created forms is:

    create them in designer

    in your project, create a class that uses the QtDesigner created ui stuff to build it's UI and implement the logic in the class

    in this class you implement the slots, so you can also implement a slot for a button (see the docs, bock, examples...)

    in that slot you can show your second form. (MyDesignerClass2.show() ) where MyDesignerClass2 is the class you use for implementing the UI for the second form. It can't be done directly in QtDesigner.



  • @Geroif:I will try out with it .
    Thank You



  • @Geroif:I think almost is done.But how to declare the second designer form in the scope of first form in its .cpp file.



  • [quote author="Revu" date="1298372699"]@Geroif:I think almost is done.But how to declare the second designer form in the scope of first form in its .cpp file.[/quote]

    The usual way is to have one cpp class per form file (.ui). To use one of the forms in another cpp file, include the headers as you do for ordinary classes too.



  • @Volker:Thanks for that tip.

    Should I have a file(.h) for my second form too?



  • Yes.



  • Of course!

    Each form should be a class, and a class should have header and cpp (if its not pure inline or template).
    The designer is only some helper tool to not do all the coding for ui representation by hand (what I personally prefer).



  • am not able to get it done...how could I attach my code with the message to get help ?



  • Am getting error after compiling.The code is as follows:
    @#include <QtGui>

    #include "mainwindow.h"
    #include "subWindow.h"

    int main(int argc , char *argv[])
    {
    QApplication app(argc,argv);

        mainwindow mWindow;
        mWindow.show();
        subWindow window;
        window.show();
    
        QObject::connect( &mWindow, SIGNAL(Clicked()),
        &window, SLOT(on_next_clicked()));
    
        return app.exec();
    

    }
    @

    the error is:

    main.cpp: In function ‘int main(int, char**)’:
    main.cpp:10: error: ‘mainwindow’ was not declared in this scope
    main.cpp:10: error: expected ‘;’ before ‘mWindow’
    main.cpp:11: error: ‘mWindow’ was not declared in this scope
    make: *** [main.o] Error 1

    please help



  • Are you sure this is the whole output? It seems like something is wrong in your mainwindow.h. Please post both the complete compilation output, and the contents of mainwindow.h.



  • [quote author="Revu" date="1298453513"]
    main.cpp: In function ‘int main(int, char**)’:
    main.cpp:10: error: ‘mainwindow’ was not declared in this scope
    main.cpp:10: error: expected ‘;’ before ‘mWindow’
    main.cpp:11: error: ‘mWindow’ was not declared in this scope
    make: *** [main.o] Error 1

    please help[/quote]

    Seems that you should read some C++ tutorial first. This are some basic error messages from the compiler. You must be familiar with header and implementation files before you can use Qt successfully.

    And as Andre already mentioned, it's hard to analyze the error without the contents of mainwindow.h.



  • the code is as below:
    @#ifdef MAINWINDOW_H
    #define MAINWINDOW_H

    #include<QDialog>
    #include"subWindow.h"
    #include "ui_main.h"

    namespace Ui
    {
    class mainwindow;
    }

    class mainwindow:public QDialog,public Ui::main
    {
    Q_OBJECT

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

    private slots:
    void on_next_click();

    };
    #endif@



  • @Volker:Thank You for your advice.

    Can you suggest me few online tutorials to understand the concepts clearly?



  • Am very new to coding so please me for my mistakes.



  • Change this:

    @
    #ifdef MAINWINDOW_H
    #define MAINWINDOW_H
    @

    to this:

    @
    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    @



  • Good catch, Volker!



  • @Volker: thank you so much I missed to check that.


Log in to reply
 

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