Witam
Zaczynam swą przygodę z rysowaniem w QT. Nie potrafię jednak umieścić osobno narysowanych obiektów (dwie inne klasy) w tym samym oknie.
Chciałem zacząć naukę od banału. Jednym obiektem będzie Oś XY, a drugim jakaś tam linia na tej osi. O ile oś XY się rysuje to lini już nie widać, choć kompilacja bez błędna.
Klasa mainwindow
#include "os.h"
#include "linia.h"
#include <QMainWindow>
#include <QPainter>
#include <QWidget>
#include <QPushButton>
class Os;
class linia;
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow();
Os *obiekt;
linia *li;
void ustokna();
};
/***************cpp***************/
MainWindow::MainWindow()
{
ustokna();
obiekt = new Os();
li = new linia(obiekt);
setCentralWidget(obiekt);
}
void MainWindow::ustokna()
{
setFixedSize(300,300);
}
Klasa osi XY
#include <QObject>
#include <QPainter>
#include <QDebug>
#include <QFont>
#define q qDebug()
class MainWindow;
class Os : public QWidget
{
Q_OBJECT
public:
static int x;
static int y;
Os();
Os(MainWindow *parent);
void paintEvent(QPaintEvent*);
private:
MainWindow *parent;
QPainter *xy;
};
/********************cpp*************/
Os::Os(MainWindow*parent ): QWidget(parent)
{}
Os::Os()
{}
void Os::paintEvent(QPaintEvent*)
{
QFont sf("Times", 16, QFont::Bold);
xy = new QPainter(this);
xy-> setPen(Qt::blue);
xy-> drawLine(150,300,150,80);
xy-> drawLine(0,170, 300, 170);
xy-> setPen(Qt::red);
xy-> setFont(sf);
xy-> drawText(260, 165 ,"X");
xy-> drawText(160, 100, "Y");
xy-> end();
}
int Os::x = 150;
int Os::y = 170;
klasa lini
#include "mainwindow.h"
#include <QWidget>
#include <QPainter>
#include <QDebug>
#define q qDebug()
class MainWindow;
class Os;
class linia : public QWidget
{
Q_OBJECT
public:
int czynnik;
QPainter *lin;
linia(Os*parent);
void paintEvent(QPaintEvent*);
};
/*********************cpp******************/
#include "linia.h"
linia::linia(Os *parent): QWidget(parent)
{}
void linia::paintEvent(QPaintEvent *)
{
lin = new QPainter(this);
lin-> setPen(Qt::red);
lin-> drawLine(150, 150, 150, 180);
lin-> end();
}
dodanie znaczników <code class="cpp"> - Furious Programming
Lucas Darkstorm