Robot Operating System/ROS

[ROS] QT Virtual Keyboard

jstar0525 2023. 4. 11. 22:23
반응형

해결하고자 하는 문제

Qt5에서

키보드없이 마우스나 화면 터치를 이용하여

Qt virtaul Keyboard를 사용하기

본 글의 내용은 아래와 같다.

  • virtual keyboard를 사용하기 위한 환경 구성 및 겪었던 문제&해결 방법
  • virtual keyboard 예제 돌려보기
  • ROS에서 Qt를 사용할 경우 virtual keyboard를 사용하는 방법

Env.

OS : Ubuntu 18.04 (Desktop,NVIDIA Jetson AGX Xavier) / Ubuntu 20.04 (Nvidia Jetson Orin)

Qt : 아래 환경 구성으로부터 설치한 버전

환경 구성

※ Docker를 이용하여 X server로 GUI를 띄우게 했지만,
X server에서는 virtual keyboard가 뜨지 않아 local에 설치하여 테스트를 진행

의존성 패키지 설치

sudo apt-get update
sudo apt-get install nano
sudo apt-get install qtcreator
sudo apt-get install cmake build-essential git 
sudo apt-get install qt5-default qtbase5-dev qt5-qmake libqt5gui5 qtscript5-dev qtquickcontrols2-5-dev libqt5network5 qtdeclarative5-dev
sudo apt-get install qml-module-qtquick*
sudo apt-get install qml-module-qt-labs-folderlistmodel
sudo apt-get install libqt5svg5-dev
sudo apt-get install qtbase5-private-dev
sudo apt-get install libxcb-xfixes0-dev

(Optional) ROS Melodic 관련 패키지 설치

sudo apt-get install ros-melodic-qt-build
sudo apt-get install qtmultimedia5-dev

qtvirtaulkeyboard 다운로드 및 빌드 후 플러그인 복사

※ Ubuntu 20.04 Nvidia Jetson Orin에서 git checkout 5.13에서 작동 확인

git clone git://code.qt.io/qt/qtvirtualkeyboard.git
cd qtvirtualkeyboard/
git checkout 5.7
nano src/config.pri

 

- 한국어 언어팩 포함하기 위해서 아래와 같이 lang-ko_KR 추가

config.pri
0.00MB

...
# Default language
!contains(CONFIG, lang-.*) {
    contains(QT_CONFIG, private_tests) { # CI or developer build, use all languages
        CONFIG += lang-all
    } else {
        CONFIG += lang-en_GB lang-ko_KR
    }
}
...
qmake
make
sudo make install

- make install로 아래 명령 실행하지 않아도 됨

cd qml

 

# os에 따라 path가 달라짐

 

# dpkg -L qml-module-qtquick-dialogs으로 설치 path 검색

 

sudo cp -r QtQuick/ /usr/lib/x86_64-linux-gnu/qt5/qml/

 

(sudo cp -r qml/QtQuick/ /usr/lib/aarch64-linux-gnu/qt5/qml/)

 

cd ..

 

cd plugins

 

# os에 따라 path가 달라짐

 

# dpkg -L qml-module-qtquick-dialogs으로 설치 path 검색

 

sudo cp -r platforminputcontexts/ /usr/lib/x86_64-linux-gnu/qt5/plugins/

 

(sudo cp -r platforminputcontexts/ /usr/lib/aarch64-linux-gnu/qt5/plugins/)

qtcreator를 이용한 예제 프로그램 실행

qtvirtualkeyboard 프로젝트 열기

qtcreator

프로젝트 열기
qtvirtualkeyboard/examples/example.pro 열기
좌측하단 빌드(망치모양아이콘) 후 실행(플레이아이콘)

- 만약 실행이 안된다면 아래의 파일을 수정하여 Desktop과 Embeded 환경에 따라서 MAIN_QML을 지정/변경하면 실행됨

https://github.com/qt/qtvirtualkeyboard/blob/5.7/examples/virtualkeyboard/basic/basic.pro

 

GitHub - qt/qtvirtualkeyboard: QtQuick virtual keyboard

QtQuick virtual keyboard. Contribute to qt/qtvirtualkeyboard development by creating an account on GitHub.

github.com

실행

- 빌드 후 실행하면 아래와 같은 결과를 얻을 수 있다.

ROS에서 virtual keyboard 사용하기

main.cpp안 int main 함수 안에

qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));

위 코드 한 줄 추가하면 실행됨

ref.

https://heisanbug.tistory.com/16

[QT QML 가상키보드_virtual keyboard_영어/한글 전환_Ubuntu

1. 개요 Qt5에서 가상키보드인 Qt Virtual Keyborad를 사용하는 방법에 대한 설명입니다. 글쓴이가 Qt 프로그래밍에 대한 이해가 많이 부족하고, Qt가 설치된 OS나 Version에 따라 동작 여부가 달라질 수 있

heisanbug.tistory.com](https://heisanbug.tistory.com/16)

반응형