Slot
-
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.
-
[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.
-
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 1please help
-
[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 1please 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_OBJECTpublic:
explicit mainwindow(QWidget *parent=0);
~mainwindow();private slots:
void on_next_click();};
#endif@