달력

22025  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

QT 뿐만 아니라 다른 플랫폼에서도 string 관련 클래스와 char 자료형 변환은 매번 하면서도 매번 잊어 먹는다. 잊어 먹을 때마다 매번 검색하기 귀찮아 정리한다.


1. QString to char 배열

QString k = "CRAZYYYQT";

char ab[16];

sprintf(ab,"%s",(const char *)((QByteArray)(k.toLatin1()).data()) );

sprintf(ab,"%s",(const char *)((QByteArray)(k.toStdString()).data()));  

sprintf(ab,"%s",(const char *)k.toStdString().c_str()  );


또는 strcpy 함수를 사용하여


 strcpy( ab, k.toStdString().c_str()); 


toLatin1() 함수의 리턴 type이 QByteArray 객체이다.


2. QString to char 포인터

char 포인터를 사용할 때 주의할 점은 const type 으로 지정해줘야 한다.

QString k = "CRAZYYYQT";

const char* p = k.toStdString().c_str();


3. char 포인터 to QString

char* cha = "ABC";

QString str = QString(ch);

QString str2 = QString("%1").arg(ch);

QString str3 = QString::fromUtf8(ch); 



'karma( 업 ) > QT&QML Tip' 카테고리의 다른 글

QString & QStringList Empty 초기화  (0) 2018.06.26
QDateTime & QDate & QTime toString 함수 사용  (0) 2018.06.12
QT Creator에서 external library 추가하기  (0) 2017.12.15
Circle Button 만들기  (0) 2017.10.23
A Tour of Qt  (0) 2017.07.04
Posted by 생짜
|

QT 프로젝트에 외부 lib를 추가시키는 방법으로는 두 가지 방법이 있다.

.pro 파일을 직접 수정하는 방법과 QT Creator의 툴을 사용하는 방법이다.


1. .pro 파일 수정

LIBS += -Lpath -llibname(*.a, *.so)

ex)) 

      LIBS += -L$$PWD/../app_build/x86_64/ -ltest

INCLUDEPATH += $$PWD/../app_build/x86_64

DEPENDPATH += $$PWD/../app_build/x86_64

'$$PWD' 키워드는 사용하는 .pro 파일의 위치이다. 여기서 의미는 현재 위치 기준이라는 뜻이다.

'path'는 test lib 파일의 경로이고  -L 키워드는 lib 의 경로의미이다.

'libname'은 lib 파일명인 test이다. ( 컴파일 후 실제 결과 파일의 파일명은 'libtest.a' 또는 'libtest.so')

INCLUDEPATH / DEPENDPATH 도 꼭 기술해줘야 한다.


2. QT Creator 사용

2.1 .pro 파일을 연다.

2.2 .pro 파일에서 마우스 오른쪽 버튼을 클릭, 팝업창에서 'Add Library...' 선택 후 위저드를 따라한다.

ex. 1


ex.2


ex.3


Library file / Include path를 선택하고( Library file을 선택하면 밑의 path는 자동으로 선택되어진다. 자동으로 선택이 안되면 Browse 버튼을 클릭하여 Library file과 동일한 path를 준다.) 사용할 해당 플랫폼을 선택한 후 Next 버튼을 클릭하면 Summary 창으로 이동한다 

Summary 창에서 Finish 버튼을 클릭하면 .pro 파일에 라이브러리가 추가된다.

'karma( 업 ) > QT&QML Tip' 카테고리의 다른 글

QDateTime & QDate & QTime toString 함수 사용  (0) 2018.06.12
QString to char* || char* to QString  (0) 2018.01.10
Circle Button 만들기  (0) 2017.10.23
A Tour of Qt  (0) 2017.07.04
QT를 시작합니다. 네번째 이야기  (0) 2017.06.22
Posted by 생짜
|

circleButton.tar.gz

원형 버튼을 만들 경우 가장 신경쓰이는게 MouseArea이다.

Rectangle에 property인 radius에 적당한 값을 주면 Rectangle의 각 모서리는 원형을 띄게 된다.

radius 값의 조절로 원형 버튼을 만들 수 있다.


이 때 중요한 것은 MouseArea 로 부모 Ractanlge에 anchors fill을 조면 원형 밖의 영역도 마우스 이벤트를 가지게 된다.


첨부되어 있는 소스를 다운받아 실행 시키면 원형의 영역에만 마우스 이벤트를 줄 수 있다.

import QtQuick 2.0


Item {

    id: roundMouseArea


    property alias mouseX: mouseArea.mouseX

    property alias mouseY: mouseArea.mouseY


    property bool containsMouse: {

        var x1 = width / 2;

        var y1 = height / 2;

        var x2 = mouseX;

        var y2 = mouseY;

        var distanceFromCenter = Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2);

        var radiusSquared = Math.pow(Math.min(width, height) / 2, 2);

        var isWithinOurRadius = distanceFromCenter < radiusSquared;

        return isWithinOurRadius;

    }


    readonly property bool pressed: containsMouse && mouseArea.pressed


    signal clicked


    MouseArea {

        id: mouseArea

        anchors.fill: parent

        hoverEnabled: true

        acceptedButtons: Qt.LeftButton | Qt.RightButton

        onClicked: if (roundMouseArea.containsMouse) roundMouseArea.clicked()

    }

}


 import QtQuick 2.6

import QtQuick.Window 2.2


Window {

    visible: true

    width: 640; height: 480;

   title: qsTr("Hello World")

   MainForm {

        anchors.fill: parent

        mouseArea.onClicked: {

            console.log(qsTr('Clicked on background. Text: "' + textEdit.text + '"'))

        }

    }


    Rectangle {

        id: circleBt

        x: 50; y:50; width: 100; height: 100

        color: roundMouseArea.pressed ?

                  "red" : (roundMouseArea.containsMouse ? "darkorange" : "transparent")

        radius: width/2

        border.color: "darkorange"


        RoundMouseArea {

            id: roundMouseArea

            anchors.fill: parent

            onClicked: print("clicked")

        }

    }

}

출처 stack overflow( https://stackoverflow.com/questions/38164074/how-to-create-a-round-mouse-area-in-qml )



Posted by 생짜
|

하체는 우리 몸에서 가장 큰 근육으로 이 근육을 단련하면 살이 쉽게 빠질 수 있다는 이야기 ^^

하지만 굶는 것에 당할 재간은 없다...ㅋ~~~~

이왕 운동할 거면 하체에 집중하자.



'Life > play' 카테고리의 다른 글

올바른 싸이클 자세 만들기  (0) 2018.11.16
서울시의 자출족을 위한 샤워 서비스를 경험하다.  (0) 2018.08.14
1세트만 따라해도 몸살나는~~~  (0) 2017.06.22
Anllela Sagra  (0) 2017.06.22
Chair Workout!  (0) 2017.06.22
Posted by 생짜
|

Qt De

카테고리 없음 2017. 7. 6. 21:27

https://www.facebook.com/qt/posts/1585794378121879

Posted by 생짜
|
QT에 대한 전반적인 여행을 떠나보자 ^^




'karma( 업 ) > QT&QML Tip' 카테고리의 다른 글

QT Creator에서 external library 추가하기  (0) 2017.12.15
Circle Button 만들기  (0) 2017.10.23
QT를 시작합니다. 네번째 이야기  (0) 2017.06.22
Wrapping C++ Objects For Property Exposure In QML  (0) 2017.06.19
Qt Careers  (0) 2017.06.19
Posted by 생짜
|

'karma( 업 ) > QT&QML Tip' 카테고리의 다른 글

Circle Button 만들기  (0) 2017.10.23
A Tour of Qt  (0) 2017.07.04
Wrapping C++ Objects For Property Exposure In QML  (0) 2017.06.19
Qt Careers  (0) 2017.06.19
Qt Korea - QtOcube 포럼  (0) 2017.06.15
Posted by 생짜
|
Posted by 생짜
|

'Life > play' 카테고리의 다른 글

서울시의 자출족을 위한 샤워 서비스를 경험하다.  (0) 2018.08.14
살을 빼고 싶다면 다리를 움직여라...  (0) 2017.07.27
Anllela Sagra  (0) 2017.06.22
Chair Workout!  (0) 2017.06.22
Routine exercises to do at home  (0) 2017.06.22
Posted by 생짜
|

Anllela Sagra

Life/play 2017. 6. 22. 16:23

'Life > play' 카테고리의 다른 글

살을 빼고 싶다면 다리를 움직여라...  (0) 2017.07.27
1세트만 따라해도 몸살나는~~~  (0) 2017.06.22
Chair Workout!  (0) 2017.06.22
Routine exercises to do at home  (0) 2017.06.22
야외에서 할 수 있는 운동!  (0) 2017.06.22
Posted by 생짜
|