15 Haziran 2021 Salı

QImage Sınıfı

constructor
Şöyle yaparız
QPixmap originalPixmap = QPixmap::grabWidget(this);

QImage *image = new QImage(originalPixmap.toImage());

31 Mayıs 2021 Pazartesi

QAtomicInt Sınıfı

fetchAndAddOrdered metodu
Şöyle yaparız
QAtomicInt atomInt(15);
int n = atomInt.fetchAndAddOrdered(1) + 1; // n == 16, atomInt == 16

8 Temmuz 2020 Çarşamba

Q_OBJECT Macrosu

Giriş
Kendi sınıfımız QObject'ten kalıtıyorsa kullanırız.

Örnek
Şöyle yaparız
class RequestBuilder : QObject
{
  Q_OBJECT
  ...
};

3 Mart 2020 Salı

QOpenGLFrameBuffer Sınıfı

Giriş
Açıklaması şöyle.
It provides a rendering surface that can be painted on with a QPainter with the help of QOpenGLPaintDevice, or rendered to using native OpenGL calls.

25 Şubat 2020 Salı

QGraphicsView Sınıfı

resize metodu
Örnek
Şöyle yaparız.
int main(int argc, char *argv[])
{
  QApplication a(argc, argv);
  QGraphicsScene scene;
  QGraphicsView view(&scene);
  
  QGraphicsTextItem *textItem = new QGraphicsTextItem("Stack Overflow");
  scene.addItem(textItem);
  
  view.show();
  view.resize(640, 480);
  return a.exec();
}

9 Şubat 2020 Pazar

QTimer Sınıfı

Giriş
Şu satırı dahil ederiz.
#include <QTimer>
Timer sınıfı yaratıldığı thread tarafından başlatılabilir ve durdurulabilir. Yoksa şöyle bir hata alırız.
QObject::~QObject: Timers cannot be stopped from another thread
Handler Metod
Normalde bu metodun parametre almayan bir imzaya sahip olması gerekir.

Örnek
Eğer parametre geçmek istersek şöyle yaparız. Buradar SLOT(timeout()) yerine direkt &QTimer::timeout adresi geçiliyor. Bence bu şekilde kullanmamak lazım.
int interval = 500;
int data = 42;

QTimer *timer = new QTimer(this);
connect(timer, &QTimer::timeout, [data] {
    /* Implement your logic here */
});
isActive  metodu
Şöyle yaparız.
if(timer.isActive()){
  timer.stop();
}
setSingleShot metodu
Şöyle yaparız.
m_pTimer->setSingleShot(true);
timeout Signal
Şöyle yaparız.
connect(m_pTimer, SIGNAL(timeout()), this, SLOT(perform()));

void MyTask::perform()
{
  ...
}
setInterval metdou
Şöyle yaparız.
timer.setInterval(3000);
singleShot metodu - static
Şöyle yaparız.
QTimer::singleShot(10, [=](){
   // do some stuff
});
start metodu
MainWindow sınıfında şöyle yaparız.
QTimer *m_pTimer = new QTimer(this);
connect(m_pTimer, SIGNAL(timeout()), this, SLOT(updateProgress()));
m_pTimer->start(40);
Handler kodu şöyledir
void MainWindow::updateProgress()
{
  ...
}
stop metodu
Şöyle yaparız.
m_pTimer->stop();

10 Ocak 2020 Cuma

QSharedPointer Sınıfı

constructor
Şöyle yaparız.
auto result = QSharedPointer<QStringList>( new QStringList() );