해결하고자 하는 문제
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 추가
...
# 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
- 만약 실행이 안된다면 아래의 파일을 수정하여 Desktop과 Embeded 환경에 따라서 MAIN_QML을 지정/변경하면 실행됨
https://github.com/qt/qtvirtualkeyboard/blob/5.7/examples/virtualkeyboard/basic/basic.pro
실행
- 빌드 후 실행하면 아래와 같은 결과를 얻을 수 있다.
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)