Posiadam 2 Klasy, 1 Odpowiada za rysowanie tabeli złożonej z pol, 2 Klasa definiuje pojedyncze Pole.
W konstruktorach przesyłam wskaźnik do okna w którym chce rysować.
Problem dotyczy klasy Field, w funkcji draw(). Gdy chce wyświetlić tekst na ekranie program po skompilowaniu wyrzuca mi okno i się zawiesza.
W tej funkcji jest też inna operacja odnośnie rysowania Prostokąta o podanych parametrach, przy nim nie mam żadnych problemów prostokąt zostaje wyświetlony na ekranie.
Z jakiej przyczyny program sie zawiesza jeżeli chce narysować tekst ?
Dodam, że czcionka została poprawnie załadowana.
#ifndef GRAPHICKARNOUGHTABLE_H
#define GRAPHICKARNOUGHTABLE_H
#include <sstream> // konwersja na const string
#include <iostream>
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include <vector>
using namespace std;
using namespace sf;
class Field
{
RectangleShape rsField;
Text tField;
Font font;
RenderWindow *pointWin; // wskaznik do okna
public:
Field() {}
Field(RenderWindow *pointWin, const string label, Color color, int x, int y, int rowSize, int colSize) : pointWin(pointWin)
{
rsField.setFillColor(color);
rsField.setPosition(x, y);
rsField.setSize(Vector2f(rowSize,colSize));
rsField.setOutlineThickness(3);
rsField.setOutlineColor(Color::Black);
if(!font.loadFromFile("fonts/arial.ttf"))
cout << "NIE WCZYTANO CZCIONKI!";
tField.setString("aa");
tField.setCharacterSize(10);
tField.setFont(font);
tField.setColor(Color::Red);
tField.setPosition(x+rowSize/2, y+colSize/2);
}
void draw()
{
// pointWin->draw(rsField); // rysuj prostokat
pointWin->draw(tField); // rysuj tekst
}
};
//=================================================================================================================================================
class GraphicKarnoughTable
{
// Zmienne
int row, column; // liczba wierszy i kolumny
int FRow, FColumn; // liczba wiersza i kolumny pol wraz z nazwami
int colSize, rowSize; // wielkosc jednego okienka
int width, height; // Position of Table
// wskaznik do okna
RenderWindow *pointWin;
// napisy przerzutnikow
string horizontalLabel;
const static int fields = 5;
Field ffName;
Color lightYellow;
public:
GraphicKarnoughTable(int row, int column, int colSize, int rowSize, RenderWindow *pointWin, vector < vector<char> > flipFlopTable, string horizontalLabel, string verticalLabel, int width, int height):
lightYellow(246,227,191), // kolory
pointWin(pointWin), row(row),column(column),colSize(colSize), rowSize(rowSize),FRow(row+1),FColumn(column+1),horizontalLabel(horizontalLabel),width(width),height(height)
{
ffName = Field(pointWin, "D", lightYellow, width, height, 6*rowSize, colSize);
}
void DrawTable()
{
ffName.draw();
}
};
#endif // GRAPHICKARNOUGHTABLE_H
Pozdrawiam