31 Mart 2017 Cuma

QT NOTES

Prepend ve Append Farkı : 

Prepend: Başa Ekle

Append : Sona Ekle



qDEbug ve NOSPACE özelliği 
int a = 10 , b=20 ;

qDebug() << a << b;

çıktı : 10 20

eğer arada boşluk istemezsek  nospace kullanırız

 qDebug().nospace << a << b;

çıktı : 1020


QVEKTOR  SINIFI :


int main()
{
    QVector<int> vect;

    vect << 10 << 20 << 30 << 40 << 50;

    qDebug() << vect;     // QVector(10, 20, 30, 40, 50)

    return 0;

}

Sınıfın clear üye fonksiyonu vektör içerisindeki tüm elemanları siler. empty fonksiyonu vektörün içinin boş olup olmadığını bize verir. erase ile elemanlar silinebilir. first fonksiyonu ve front fonksiyonu ilk elemanı, last fonksiyonu da son elemanı vermektedir. indexOf ve lastIndexOf fonksiyonlarıyla vektör içerisinde arama yapılabilir. removeAt belli bir indeksteki elemanı silmek için kullanılır.



QBYTEARRAY  :

QByteArray qba(100, 0);     // nesnenin içerisinde 100 byte var, hepsi 0


- clear üye fonksiyonu yine nesne içerisindeki tüm byte’ları silmek için kullanılır.

- insert fonksiyonlarıyla belli bir pozisyone insert yapılabilir.

- indexOf fonksiyonları arama amacıyla kullanılır.

- Nesnenin içerisindeki belli bir kısım mid fonksiyonuyla çekilip alınabilir. 
- Nesnenin başına ekleme yapmak için prepend fonksiyonları kullanılır.

- Kapasite artımı için reserve, size artırımı için resize fonksiyonları kullanılmaktadır.

- Sınıfın setNum fonksiyonları nesnenin içerisine çeşitli türendne değerleri byte nyte kodlar. Fakat bu fonksiyonlar sona ekleme yapmazlar.




    QByteArray qba;
    int a = 1234;

    qba.setNum(a);    // byte'larına ayrıştırıp 4 byte olarak ekler.



qint64 QIODevice::read(char *data, qint64 maxSize);
QByteArray QIODevice::read(qint64 maxSize);
QByteArray QIODevice::readAll();

Bu fonksiyonlar dosya göstericisinin gösterdiği yerden itibaren parametreleriyle belirtilen miktarda byte değerini okur. İki parmetreli read fonksiyonu okunan bilgileri bizim verdiğimiz char türden bir adresten itibaren yerleştirir. Tek parametreli read fonksiyonu ise okunan bilgileri QByteArray olarak vermektedir. readAll fonksiyonu dosya göstericisinin gösterdiği yerden dosya sonuna kadar tüm byte’ları okumaktadır.


qint64 QIODevice::write(const char *data, qint64 maxSize);
qint64 QIODevice::write(const char *data);
qint64 QIODevice::write(const QByteArray &byteArray);

Birinci fonksiyon belli bir adresten itibaren belli sayıda byte’ı dosya göstericisinin gösterdiği yerden itibaren dosyay yazar. İkinci fonksiyon bir yazıyı null karakter görene kadar byte byte dosyaya yazmaktadır. Üçüncü fonksiyon QByteArray içerisindekileri dosyay yazar. 


QFİLEDİALOG:

QFileDialog fileDialog(this, "Bir dosya seçiniz");

Diayalog penceresi belli bir dizinle de açılabilir:

QFileDialog fileDialog(this, "Bir dosya seçiniz", "c:\\windows");

QFileDialog sınıfının setFilterNames fonksiyonu bizden filtreleme bilgilerini bir QStringList nesnesi olarak alır. Her filtreleme yazısı bir yazı ve parantez içerisinde joker karakterlerinden oluşmaktadır. Örneğin:

QFileDialog fileDialog(this, "Bir dosya seçiniz", "c:\\windows");

QStringList filters;
filters << "All File (*.*)" << "Text Files (*.txt)";
fileDialog.setNameFilters(filters);

if (fileDialog.exec() == QFileDialog::Accepted) {
    qDebug() << fileDialog.selectedFiles()[0];
}

Biz  setFileMode fonksiyonuyla diyalog penceresinde yalnızca dizinlerin gösterilmesini sağlayabiliriz. Örneğin:

QFileDialog fileDialog(this, "Bir dosya seçiniz", "c:\\windows");
fileDialog.setFileMode(QFileDialog::DirectoryOnly);




S
ı
n
ı
f
ı
n indexOf üye fonksiyonlar
ı
yaz
ı
içerisinde bir yaz
ı
ya da karakter ararlar. E
ğ
er bulurlarsa bulduklar
ı
yerin yaz
ı
erisindeki indeks numaras
ı
yla bulamazlarsa -1 de
ğ
eri ile geri dönerler.
S
ı
n
ı
f
ı
n indexOf üye fonksiyonlar
ı
yaz
ı
içerisinde bir yaz
ı
ya da karakter ararlar. E
ğ
er bulurlarsa bulduklar
ı
yerin yaz
ı
erisindeki indeks numaras
ı
yla bulamazlarsa -1 de
ğ
eri ile geri dönerler.
Share:

30 Mart 2017 Perşembe

QT- QTCP SERVER

main.cpp

#include < QCoreApplication>
#include< myserver.h>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    MyServer mServer;
    return a.exec();
}


---------------------------------
myserver.h


#ifndef MYSERVER_H
#define MYSERVER_H
#include < QObject>
#include< QDebug>
#include< QTcpServer>
#include< QTcpSocket>
class MyServer : public QObject
{
    Q_OBJECT
public:
    explicit MyServer(QObject *parent = 0);

signals:
public slots:
    void newConnection();

private:
    QTcpServer *server;
};

#endif // MYSERVER_H
---------------------------------------------------
myserver.cpp

#include " myserver.h"
MyServer::MyServer(QObject *parent) : QObject(parent)
{
   server = new QTcpServer(this);
   connect(server,SIGNAL(newConnection()),this,SLOT(newConnection()));
   if(!server->listen(QHostAddress::Any,1234))
   {
       qDebug() < <    "Server Could Not Star! ";
   }
   else
   {
       qDebug() < <    "Server Started ";
   }
}
void MyServer::newConnection()
{
    QTcpSocket *socket  =  server->nextPendingConnection();
    socket->write("Hello Client \r\n");
    socket->flush();
    socket->waitForBytesWritten(3000);
    socket->close();
}


Share:

QT- QTCPSOCKET with SIGNAL/SLOT

main.cpp

#include < QCoreApplication>
#include < sockettest.h>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    SocketTest mTest;
    mTest.Test();
    return a.exec();
}



----------------------------------------------
socketTest.h


#ifndef SOCKETTEST_H
#define SOCKETTEST_H
#include < QObject>
#include< QDebug >
#include< QTcpSocket >
#include< QAbstractSocket >
class SocketTest : public QObject
{
    Q_OBJECT
public:
    explicit SocketTest(QObject *parent = 0);
    void Test();
signals:
public slots:
    void  connected();
    void  disconnected();
    void bytesWritten(qint64 bytes);
    void readyRead();
private:
    QTcpSocket *socket;
};
#endif // SOCKETTEST_H

--------------------------------------------------
socketTest.cpp


#include "sockettest.h "
SocketTest::SocketTest(QObject *parent) : QObject(parent)
{
}
void SocketTest::Test()
{
    socket = new QTcpSocket(this);
    connect(socket,SIGNAL(connected()),this,SLOT(connected()));
    connect(socket,SIGNAL(disconnected()),this,SLOT(disconnected()));
    connect(socket,SIGNAL(readyRead()),this,SLOT(readyRead()));
    connect(socket,SIGNAL(bytesWritten(qint64)),this,SLOT(bytesWritten(qint64)));
    qDebug()< <" Connecting .........";
    socket->connectToHost("google.com",80);
    if(!socket->waitForConnected(1000))
    {
        qDebug()< <" Error ......... "<< socket->errorString();
    }
}
void  SocketTest::connected()
{
        qDebug()< <" Connected ......... ";
        qDebug() < < socket->write("HEAD / HTTP/1.0 \r\n\r\n");
}
void  SocketTest::disconnected()
{
    qDebug()< <" Disconnected ......... ";
}

void SocketTest::bytesWritten(qint64 bytes)
{
    qDebug() < < " We Wrote :" << bytes;
}

void SocketTest::readyRead()
{
    qDebug()< < "Reading ...   ";
    qDebug()< < socket->readAll();
}

Share:

QT - QTCPSOCKET

main.cpp

#include < QCoreApplication>
#include " sockettest.h"
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    SocketTest cTest;
    cTest.Connect();
    return a.exec();
}

}

----------------------------------------------

socketTest.h 


#ifndef SOCKETTEST_H
#define SOCKETTEST_H
#include < QObject>
#include< QTcpSocket>
#include< QDebug>
class SocketTest : public QObject
{
    Q_OBJECT
public:
    explicit SocketTest(QObject *parent = 0);
    void Connect();
signals:
public slots:
private:
    QTcpSocket *socket;
};
#endif // SOCKETTEST_H


----------------------------------------------------


socketTest.cpp



#include " sockettest.h"

SocketTest::SocketTest(QObject *parent) : QObject(parent)
{
}
void SocketTest::Connect()
{
    socket = new QTcpSocket(this);
    socket->connectToHost("google.com",80);
    if(socket->waitForConnected(3000))
    {
        qDebug() < <"Connected";
        socket->write("Hello World \r\n\r\n");
        socket->waitForBytesWritten(1000);
        socket->waitForReadyRead(3000);
        qDebug() < < "Reading :   " << socket->bytesAvailable();
        qDebug() < < socket->readAll();
        socket->close();
    }
    else
    {
        qDebug() < <"Not Connected";
    }
}

Share:

27 Mart 2017 Pazartesi

QT BANK ATM TRANSACTION

#include "trans.h"
#include
Trans::Trans()
{
}
unsigned long amount=1000,deposit,withdraw;
int choice,pin,k;
char transaction='y';
void Trans::func()
{
    while(pin != 1520)
    {
        std::cout<<"\nPlease Your Secret PIN Number : ";
        std::cin>>pin;
        if(pin != 1520)
        {
            std::cout<<"\nPlease Enter Invalid Password";
        }
    }
    do
    {
        std::cout<<"*************Welcome to ATM Service \n";
        std::cout<<"1.Check Balance  \n";
        std::cout<<"2.Withdraw Cash  \n";
        std::cout<<"3.Deposit Cash   \n";
        std::cout<<"4.Quit           \n";
        std::cout<<"************?**\n\n";
        std::cout<<"Enter Your Choice\n";
        std::cin>>choice;
        switch (choice)
        {
        case 1:
            std::cout<<"\nYOUR BALANCE  : "<
            break;
       case 2:
            std::cout<<"\nPLEASE ENTER AMOUNT TO WITHDRAW:  ";
            std::cin>>withdraw;
            if(withdraw %100 !=0)
            {
                std::cout<<"\nPLEASE  ENTER AMOUNT IN MULTIPLES OF 100";
            }
            else if(withdraw>(amount-500))
            {
                std::cout<<"\n INSUFFICENT BALANCE";
            }
            else
            {
                amount=amount-withdraw;
                std::cout<<"\n PLEASE COLLECT CASH  :";
                std::cout<<"\n YOUR BALANCE IS : "<
            }
            break;
       case 3:
            std::cout<<"\nPLEASE ENTER AMOUNT TO DEPOSIT";
            std::cin>>deposit;
            amount=amount+deposit;
            std::cout<<"\nYOUR BALANCE : "<
      case 4:
            std::cout<<"\nTHANK YOU USING ATM ";
      default:
                std::cout<<"\n INVALID CHOICE";

      }
      std::cout<<"\n\n\nDO YOU WISH ANOTHER TRANSACTION?(y/n):\n";
      std::cin>>transaction;
      if(transaction == 'n' || transaction == 'N')
      {
          k=1;
      }
   }
    while(!k);
    std::cout<<"\n\nTHANKS FOR USING OUT ATM SERVICE";
    
}
Share: