Qt konusunda pek kaynak bulunmayışı bu nadide sistemin
tanınmasına biraz engel olması nedeniyle yeni başlayanlara ufak fikirler vermek
istedim. Tabi ki sizin C++ bilginizin var olduğunu kabul ediyorum.
Bunun için sayfamıza bir GraphicsView ve iki PushButton
nesnesi ekliyoruz. Ekran görüntümüz şu şekilde olabilir.
Bu işlemden sonra referans tanımlarımızı yapmamız gerekir.
Aşağıdaki kodları header dosyamıza ekliyoruz.
#include
#include
#include
Şimdi private olarak GraphicsScene pointerimizi oluşturmaya
geldik. Burada pointer kullanarak oluşturacağımız scene nesnesinin bellekteki
adresini yakalamış oluyoruz.
private:
Ui::MainWindow *ui;
QGraphicsScene *_qscene;
};
Private tanımımız yukarıda ki gibi bir hal almış olmalı.
_qscene pointerimiz şimdilik boş. Tabi ki bunu widgetimizin oluşturulma anında
tanımlayacağız. CPP dosyamıza geçerek oluşturma aşamasında kodumuzu şu şekilde
ayarlıyoruz.
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
_qscene = new QGraphicsScene(this);
ui->gwMain->setScene(_qscene);
}
Scene pointerimizi burada oluşturuyoruz. Tabi oluşturduğumuz
scenenin parentini uygulamamızı referans olarak geçirmemiz gerek. gwMain ana
ekrana oluşturduğumuz GraphicsView imize verdiğimiz ad. gwMain'in setScene
özelliği ile pointerimizi geçiriyoruz. Artık _qscene nesnemiz üzerinde işlem
yaptığımızda pointerimiz de değişeceği için GraphicsView nesnemiz otomatik
güncellenecektir.
Her iki butonun clicked slotunu aşağıda ki gibi yapıyoruz.
void MainWindow::on_pbLine_clicked()
{
QPen _qpen(Qt::black);
_qscene->addLine(0,0,100,100, _qpen);
}
void MainWindow::on_pbRect_clicked()
{
QPen _qpen(Qt::blue);
QBrush _qbrush(Qt::yellow);
_qscene->addRect(20,20, 120,120, _qpen, _qbrush);
}
Yukarıda ki iki kod QPen ve QBrush ile çizgi ve dörtgen
oluşturmak için kullanılacak. Burada addLine ve addRect fonksiyonlarını
anlamışsınızdır. Uygulamayı çalıştırıp her iki tuşa bastığımızda GraphicsView
nesnemizde çizimler olacaktır.
Bir sonraki yazımda görüşünceye dek esenlikle...
0 yorum:
Yorum Gönder