#include <QBitArray>

QBitArray charToBitArray(char bits)
{
    QBitArray array(8);
    return array.fromBits(&bits, 8);
}

 

#ifndef CUTIL_COMMON_H
#define CUTIL_COMMON_H

//C++11
#ifdef USE_QT
#include <QString>
#include <QByteArray>
#include <QVector>
#include <QMap>
#include <QList>
#include <QSet>
#include <QDebug>

#else
#include <iostream>
#include <algorithm>
#include <functional>
#include <string>
#include <vector>
#include <memory>
#include <queue>
#include <stack>
#include <map>
#include <set>
#endif


#ifndef uchar
typedef unsigned char uchar ;
#endif

#ifndef ushort
typedef unsigned short ushort ;
#endif

#ifndef uint
typedef unsigned int uint ;
#endif

#ifdef USE_QT
typedef QVector<uchar> uCharArrayStream;
#else
typedef std::vector<uchar> uCharArrayStream;
//typedef std::function<void(int)> onCreated; //CallBackFunction
#endif

//NAME 붙은건 입맛대로 바꿔서써라.
#define NAME_PROPERTY(Type, MemberName, FaceName) \
    protected:  Type MemberName; \
    public:	Type get##FaceName() const { \
    return MemberName; \
    } \
    public: void set##FaceName(Type value) { \
    MemberName = value; \
    }

#define NAME_READONLY_PROPERTY(Type, Name) __declspec( property (get = property__get_##Name) ) Type Name;\
    typedef Type property__tmp_type_##Name
#define NAME_WRITEONLY_PROPERTY(Type,Name) __declspec( property (put = property__set_##Name) ) Type Name;\
    typedef Type property__tmp_type_##Name
#define GET(Name) property__tmp_type_##Name property__get_##Name()
#define SET(Name) void property__set_##Name(const property__tmp_type_##Name& value)

#define NS_URNAME_BEGIN namespace urname{;
#define NS_URNAME_END };

#define USING_URNAME using namespace urname;

#endif // CUTILCOMMON_H

 

//공부용으로 도움이되길바란다.
//NAME붙은건 입맛대로 바꿔서쓰시길.

Connect를 하다보면 같은 프로토콜이 다른 위젯에서 일시적으로 필요한 경우가있다.

이 경우 위젯이 메모리에서 삭제되면 disconnect가 자동으로 일어나기때문에 문제는 안되지만

상시적으로 살아있는 인스턴스라던가 혹은 자신의 부모위젯일경우 문제가 발생한다.

 

따라서 qt에서는 시그널을 끊을수있는 옵션이있다.

 

QMetaObject::Connection connectSignal;

connectSignal = connect(...);

 

 

 

//해제가 필요한 시점

disconnect(connectSignal);

 

간단하게 사용가능하다 :)

connectSignal은 실수를 방지하기 위해 해제후 초기화 해주는것이 좋다.

+ Recent posts