Nowe posty

xx Jak poprawić polecenie wyszukujące największe pliki? (3)
2021-06-13, 20:00:52
xx CUPS - Wyłączenie hostname w nazwie udostępnionej drukarki (6)
2021-06-12, 02:45:06
xx Tłumaczenie prostych programów napisanych w csh na sh (0)
2021-06-11, 16:07:52
xx Do regulaminu (0)
2021-06-07, 02:16:34
xx kompletny restore systemu (5)
2021-06-03, 11:47:08
xx Połączenie wifi, nie skanuje w poszukiwaniu sieci. (1)
2021-06-02, 22:04:54
xx problemy z instalacją (1)
2021-06-02, 14:23:26
xx Pomoc w napisaniu skryptu (11)
2021-05-31, 13:34:19
xx Instalacja php5.4 na Debian10 (2)
2021-05-31, 09:13:54
xx Wielkie firmy wymuszają dane (7)
2021-05-30, 20:25:21

Autor Wątek: Rysowanie wykresów w QT 4  (Przeczytany 13096 razy)

mówie Ci hello

  • Gość
Rysowanie wykresów w QT 4
« dnia: 2008-05-16, 17:02:41 »
Witam,
Chciałbym stworzyć widgeta do rysowania wykresów w QT 4. Ma on wykreślać sygnały przekazywane z urządzenia zewnętrznego na bierząco. Czy ktoś mógłby mi powiedzieć jakich klas użyć do stworzenia takiego widgeta?

Offline ultr

  • Users
  • Guru
  • *****
  • Wiadomości: 1177
    • Zobacz profil
Rysowanie wykresów w QT 4
« Odpowiedź #1 dnia: 2008-05-17, 01:19:52 »
QGraphicsScene powinno pasować. Plus QGraphicsView do wyświetlenia sceny.

mówie Ci hello

  • Gość
Rysowanie wykresów w QT 4
« Odpowiedź #2 dnia: 2008-05-18, 17:51:55 »
Dzieki za pomoc! Nie jestem jeszcze zbyt obeznany w Qt i pojawił się problem. Chcę mieć klasę, która będzie zawierać pole typu QGraphicsScene i pole QGraphicsView.
Wygląda to tak:

class linia : public QWidget
 {
     Q_OBJECT

 public:
     linia(QWidget *parent = 0);
     int x,y;
      QGraphicsScene scene;
      QGraphicsView view;
 public slots:
     void rysuj_linie( );

 };

 void linia::rysuj_linie()
 {
   
   QLineF line1(20+x,3,40+y,51);
   scene.addLine(line1);
   x+=10; y+=4;
   view.centerOn(x,y);
 
 };

inia::linia(QWidget *parent)
     : QWidget(parent)
 {
   QTimer *timer = new QTimer(this);
     connect(timer, SIGNAL(timeout()),
             this, SLOT(rysuj_linie() ));
   x=y=0;
 
  QGraphicsView view(&scene);
   timer->start(4);
 };

niestety po odpaleniu programu pokazuje sie tylko białe tło, zamiast rysować linie i scrolować...Czy ktoś mógłby mi z tym pomóc?

mikolajS.

  • Gość
Rysowanie wykresów w QT 4
« Odpowiedź #3 dnia: 2008-05-30, 15:49:13 »
Powinieneś napisać metodę
void paintEvent(QPaintEvent *event);
Jest ona wywoływana zawsze po odświeżeniu okna.