Qt Creator로 어플리케이션 만들기1

kenGwon·2024년 3월 4일
0

[Embedded Linux] Qt

목록 보기
3/3

탭 추가하는 방법

프로젝트 폴더 우클릭해서 "add new" 해서 Tab 페이지 전용 클래스를 만들어줬다.


이제 이렇게 만들어진 탭 전용 클래스를 MainWidget에서 객체로 생성해서 연결해줘야 한다.
1. MainWidget의 헤더파일에서 tab1devicecontrol.h파일을 include 해준다.
2. 헤더에서 private 변수로 객체 포인터 하나 만들어줘야 한다.

3. cpp 소스에서 아래 코드로 setLayout해줘야 한다.


푸시버튼 토글

푸시버튼의 "checkable" 속성을 켜주면, 푸시버튼이 토글식으로 작동하게 된다.


XOR을 이용한 토글

void Tab1DeviceControl::keyCheckBotSlot(int keyNo)
{
//    qDebug() << "KeyNo: " << keyNo;

    static int lcdData = 0;
    lcdData ^= (0x01 << (keyNo - 1));
    // 토글 기능을 구현하기 위해 XOR을 사용함(기존에 1이었는데 1이 들어온다면 0으로 만들고, 기존에 0이었는데 1이 들어온다면 1로 만들겠다는 것이다.)
    // 키를 누르면 항상 1만 들어오기 때문에 토글을 위해 XOR를 사용한 것임
    // -1을 하는 이유는 키 값이 1~8로 오는데 0~7로 받기 위함
    ui->pLcdNumberKey->display(lcdData);
}

nodeMCU가 달린 콘센트는 서버모드 클라이언트, 두가지 모드로 동작할 수 있다. 서버모드로 동작할 때는 외부에서 AP에 접속해서 그 근방 공유기에 접속할 수 있도록 하는 역할을 해준다. 그리고 연결이 되고 나면 nodeMCU가 달린 콘센트는 클라이언트 모드로 바뀐다. 클라이언트모드로 동작할 때는 근방의 iot 기기들을 제어하게 된다(?)

새로운 프로젝트를 만들어서
탭 위젯 두세개 만드는걸 목표로 평가할 것이다.

탭 페이지 만드는법


images.qrc

add new로 q resouce를 만든다.
add prefix 탭에서 /images 라는 이름으로 만들고,
add files로 해당 프리픽스에 image를 추가한다.

라벨에 이미지를 입히는 식으로 이미지를 띄운다. QLabel의 pixmap 속성에다가 이미지를 지정하면 된다.

푸시버튼에 이미지를 입히는식으로 이미지 버튼을 만든다. QAbstractbutton의 icon 속성에서 normal on / normal off 에다가 이미지를 지정하면 된다.


반드시 서버에 무언가 요청을 했으면 응답을 받은 결과를 바탕으로 GUI 변화를 적용해라

소켓 메세지는 항상 루프백으로 보낸 메세지가 제대로 갔는지 다시 확인받는 식으로 구성해야 한다.


Qt Charts 쓸라면 깔아야 하는 패키지

Qt += charts

pi@pi14:/mnt/ubuntu_nfs/AiotClient $ sudo apt install libqt5charts5-dev

실시간 영상 스트리밍 하는 방법

https://github.com/jacksonliam/mjpg-streamer 오픈소스 이미지 스트리밍 서버를 이용하여 Qt에 실시간 이미지 영상을 띄울 수 있다.

profile
스펀지맨

0개의 댓글

관련 채용 정보