Ich hab eine eventuell dumme Frage, aber ich finde mit Google keine antworten gerade
Kann ich in der main.cpp ein Signal empfangen? Also wie in anderen Klassen eine Funktion "mySignal(int);" in der main.cpp erstellen und diese von einem 2ten Thread aus aufrufen?
Ich möchte nämlich in meiner GUI eine Klasse auf befehl bewegen und skalieren. Diese Klasse erstelle ich in der main und stelle sie dort auch ein (position, usw..).
hier die main.cpp damit Ihr versteht was ich meine
Code: Alles auswählen
#include <QtGui/QApplication>
#include <QtGui/QGraphicsView>
#include <QThread>
#include <QtCore>
#include "speed.h"
#include "kommunikation.h"
#include <QGraphicsSVGItem>
#include <QSvgRenderer>
#include <QGraphicsItem>
#include <QCoreApplication>
#include <QPushButton>
class GraphicsView : public QGraphicsView
{
public:
GraphicsView(QGraphicsScene *scene) : QGraphicsView(scene)
{
}
protected:
virtual void resizeEvent(QResizeEvent *event)
{
}
};
//--------------------------------------------------------------------
//--------------------------------------------------------------------
//--------------------------------------------------------------------
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QThread *thread = new QThread();
//Kommunikation *worker = new Kommunikation();
QGraphicsScene scene(-400, -250, 800, 600);
GraphicsView view(&scene);
view.setRenderHint(QPainter::Antialiasing);
view.setBackgroundBrush(QBrush(Qt::black));
view.setFrameStyle(QFrame::NoFrame);
//erstellen der Module und einbinden in die Scene
Speed *speed = new Speed();
scene.addItem(speed);
//####################################
QPushButton *button1 = new QPushButton(QString("los"));
QPushButton *button2 = new QPushButton(QString("design"));
QObject::connect(button1, SIGNAL(clicked()), speed, SLOT(setSpeedVal()));
QObject::connect(button2, SIGNAL(clicked()), speed, SLOT(changeDesign()));
QObject::connect(button2, SIGNAL(clicked()), revolution, SLOT(changeDesign()));
scene.addWidget(button1);
scene.addWidget(button2);
button1->move(-250,-250);
button2->move(-160,-250);
//####################################
speed->setPos(-325, -125);
//scalierung geht über diesen Befehl-> es wird alles der klasse skaliert. Geht auch aus Speed heraus
//speed->setScale(0.5);
view.show();
//worker->moveToThread(thread);
// //Verbindungen zum laufen lassen/beenden des Kommunikationsthreads
// QObject::connect(thread, SIGNAL(started()), worker, SLOT(process()));
// QObject::connect(worker, SIGNAL(finished()), thread, SLOT(quit()));
// QObject::connect(worker, SIGNAL(finished()), worker, SLOT(deleteLater()));
// QObject::connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));
// thread->start();
return a.exec();
}