27 Mart 2018 Salı

QGLWidget Sınıfı

Giriş
Bu sınıf eski ve QOpenGLWidget tercih edilmeli. Açıklaması şöyle.
The most important point is that QGLWidget only exists for compatibility reasons to older codebases. 

QOpenGLWidget Sınıfı


23 Mart 2018 Cuma

QTextDocument Sınıfı

Giriş
Sanırım QPrinter ile kullanılıyor.

Constructor
Şöyle yaparız.
auto textDoc = new QTextDocument();
pageCount metodu
Şöyle yaparız.
for (auto curPageNum = 1; curPageNum <= textDoc->pageCount(); ++curPageNum) {
 ...
}
setDocumentMargin metodu
Şöyle yaparız.
textDoc->setDocumentMargin(0);
setHtml metodu
Şöyle yaparız.
QString html = R"(
<!DOCTYPE html>
<html>
...
</html>
)"

textDoc->setHtml(html);
setPageSize metodu
Şöyle yaparız.
const auto width = 100;
const auto height = 200;
textDoc->setPageSize(QSizeF {width, height});

22 Mart 2018 Perşembe

QtConcurrent

run metodu
Aynı std::async() gibi bir metodun başka thread içinde çağrılmasını sağlar.

21 Mart 2018 Çarşamba

Q_PROPERTY Macrosu

Örnek
Şöyle yaparız
// Sy_test.h - The wrapped class
class Sy_test : public QObject
{
  Q_OBJECT
  Q_PROPERTY( bool prop READ getProp WRITE setProp NOTIFY propChanged )

public:
  Sy_test( QObject* parent = nullptr ) :
    QObject{ parent },
    prop_{ false } {}

    bool getProp() const { return prop_; }

public slots:
  void setProp( bool value )
  {
    if ( value != prop_) {
      prop_ = value;
      emit propChanged( prop_);
    }
  }

signals:
  void propChanged (bool value);

private:
    bool prop_;
};
Örnek
Şöyle yaparız.
class Widget : public QObject {
  Q_OBJECT
  Q_PROPERTY(int size READ size WRITE setSize NOTIFY sizeChanged)

public:
  Widget(QObject * parent = nullptr) : QObject(parent){}
  int size() const;

public slots:
  void setSize(int new_size);

signals:
  void sizeChanged(int); //!< signals a size change

private:
  int m_size = 0; //!< the Widget's size, see #size.
};
Şöyle yaparız.
void Widget::setSize(int new_size) { 
  if(new_size != m_size) {
    m_size = new_size; 
    emit sizeChanged(m_size);
  }
}

int Widget::size() const {
  return m_size;
}