my window.h
#ifndef WINDOW_H
#define WINDOW_H
#include <QWidget>
#include <QLabel>
#include <QApplication>
#include <QFont>
#include <QGridLayout>
#include <QHBoxLayout>
#include <QPushButton>
#include <QVBoxLayout>
#include <QtGui>
#include <iostream>
#include "widget2d.h"
#include "lcdrange.h"
#include <qapplication.h>
#include <qmainwindow.h>
#include <qwt_counter.h>
#include <qtoolbar.h>
#include <qlabel.h>
#include <qlayout.h>
#include "data_plot.h"
QT_BEGIN_NAMESPACE
QT_END_NAMESPACE
{
public:
};
#endif
#ifndef WINDOW_H
#define WINDOW_H
#include <QWidget>
#include <QLabel>
#include <QApplication>
#include <QFont>
#include <QGridLayout>
#include <QHBoxLayout>
#include <QPushButton>
#include <QVBoxLayout>
#include <QtGui>
#include <iostream>
#include "widget2d.h"
#include "lcdrange.h"
#include <qapplication.h>
#include <qmainwindow.h>
#include <qwt_counter.h>
#include <qtoolbar.h>
#include <qlabel.h>
#include <qlayout.h>
#include "data_plot.h"
QT_BEGIN_NAMESPACE
class QLabel;
QT_END_NAMESPACE
class Window : public QWidget
{
public:
Window(QWidget *parent = 0);
};
#endif
To copy to clipboard, switch view to plain text mode
and here the code of the widget2d.h, where the signals and the timer are:
#ifndef WIDGET2D_H
#define WIDGET2D_H
#include <QWidget>
#include <QImage>
#include <QRgb>
#include <iostream>
//#include <cstdlib>
#include <QtGui>
//#include <dranxor.h>
#include "ExVolWid.h"
{
Q_OBJECT
public:
QSize minimumSizeHint
() const;
public slots:
void nextAnimationFrame();
void setGridScale(int value);
void ScaleGrid();
void changeStatus(bool s);
void changeRes(int value);
signals:
void scaleChanged(int newValue);
void newSignal(double nS);
protected:
private:
int ll;
bool isStarted;
bool isPaused;
bool changed;
int gridScale;
ExVolWid* my_system;
};
#endif
#ifndef WIDGET2D_H
#define WIDGET2D_H
#include <QWidget>
#include <QImage>
#include <QRgb>
#include <iostream>
//#include <cstdlib>
#include <QtGui>
//#include <dranxor.h>
#include "ExVolWid.h"
class Widget2D : public QWidget
{
Q_OBJECT
public:
Widget2D(QWidget *parent = 0);
QSize minimumSizeHint() const;
public slots:
void nextAnimationFrame();
void setGridScale(int value);
void ScaleGrid();
void changeStatus(bool s);
void changeRes(int value);
signals:
void scaleChanged(int newValue);
void newSignal(double nS);
protected:
void paintEvent(QPaintEvent *event);
void timerEvent(QTimerEvent *event);
private:
int ll;
bool isStarted;
bool isPaused;
bool changed;
int gridScale;
ExVolWid* my_system;
QBasicTimer timer;
};
#endif
To copy to clipboard, switch view to plain text mode
and widget2d.cpp code :
#include "widget2d.h"
#define min(a, b) a < b ? a : b
{
ll = 50;
gridScale = 400;
changed = true;
my_system = new ExVolWid(ll,1.0);
}
////////////
QSize Widget2D
::minimumSizeHint() const {
}
////////////
void Widget2D::setGridScale(int value)
{
gridScale = value;
emit scaleChanged(gridScale);
}
////////////
void Widget2D::ScaleGrid()
{
gridScale = min(size().height(),size().width());
update();
emit scaleChanged(gridScale);
}
//////////////
void Widget2D::changeStatus(bool s)
{
if (s){
if (changed){
delete my_system;
my_system = new ExVolWid(ll,1.0);
changed = false;
}
timer.start(50,this);
}
else {
if (timer.isActive())
timer.stop();
}
}
//////////////////
update();
}
//////////////////
{
painter.drawImage(0,0,my_system->get_pic().scaled(gridScale,gridScale));
emit newSignal(my_system->getSignal());
my_system->evolve();
}
///////////////////
void Widget2D::changeRes(int value)
{
ll = value;
changed = true;
}
///////////////////
#include "widget2d.h"
#define min(a, b) a < b ? a : b
Widget2D::Widget2D(QWidget *parent) : QWidget(parent)
{
ll = 50;
gridScale = 400;
setBackgroundRole(QPalette::Base);
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
changed = true;
my_system = new ExVolWid(ll,1.0);
}
////////////
QSize Widget2D::minimumSizeHint() const
{
return QSize(400, 400);
}
////////////
void Widget2D::setGridScale(int value)
{
gridScale = value;
emit scaleChanged(gridScale);
}
////////////
void Widget2D::ScaleGrid()
{
gridScale = min(size().height(),size().width());
update();
emit scaleChanged(gridScale);
}
//////////////
void Widget2D::changeStatus(bool s)
{
if (s){
if (changed){
delete my_system;
my_system = new ExVolWid(ll,1.0);
changed = false;
}
timer.start(50,this);
}
else {
if (timer.isActive())
timer.stop();
}
}
//////////////////
void Widget2D::timerEvent(QTimerEvent *){
update();
}
//////////////////
void Widget2D::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.drawImage(0,0,my_system->get_pic().scaled(gridScale,gridScale));
emit newSignal(my_system->getSignal());
my_system->evolve();
}
///////////////////
void Widget2D::changeRes(int value)
{
ll = value;
changed = true;
}
///////////////////
To copy to clipboard, switch view to plain text mode
thanks for your help.
Bookmarks