묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[초급] QML 프로그래밍 2편
TableView에서 ImplicitWidth, ImplicitHeight와 일반 width, height의 차이가 궁금합니다.
안녕하세요.TableView의 예제에서 ImplicitWidth와 ImplicitHeight 대신 width, height를 그냥 사용하였더니, Rectangle의 사이즈가 설정해준 값을 유지하지 못하고 그 보다 작은 정사각형 형태로 실행되어버리네요.혹시 Component 내에서 Rectangle 사용 시에는 Implicit를 width와 height에 꼭 붙여서 사용해야 하고, 일반 width와 height는 사용하면 안되는 걸까요?
-
해결됨[초급] QML 프로그래밍 2편
GridView에서 Padding과 Margin의 차이가 있을까요?
안녕하세요.GridView 예제에서 topPadding과 같이 Padding을 통해 간격을 설정하는 거 같던데, Margin을 사용하는 것과 차이가 있는걸까요?
-
해결됨[초급] QML 프로그래밍 2편
ListView에서 currentIndex 작동안됩니다.
안녕하세요.ListView의 예제에서 currentIndex: 50 으로 두고 실행시켜보아도 실행 시 시작은 항상 0에서 시작합니다.currentIndex: 50이면 실행 직후 창에 보이는 시작 인덱스가 0이 아닌 50에서 시작할 거 같은데 맞을까요?
-
해결됨[초급] QML 프로그래밍 2편
설명이 가려서 보이질 않습니다.
매번 좋은 강의 감사드립니다.Chess Game 구현 Part1 에서 영상 뒷부분 좌표 설명 시 강사님 모습에 가려서 설명이 보이질 않는데요.혹시 해당 부분 수정이 가능할까요?
-
해결됨[초급] QML 프로그래밍 1편
"ProgressBar"의 'indeterminate" 및 "value" 관계 문의드려요.
안녕하세요."ProgressBar"에서 "indeterminate"를 "true"로 하니 짧은 막대바 4개가 움직이면서 작동합니다.다만, "value"가 0.7이니 막대바의 모션이 70% 위치까지 이동하는 줄 알았으나, 해당 "value"값을 0.1~0.9까지 변동시켜보아도 전체 바에서 막대바의 모션 범위는 변화없이 바의 중앙을 기준으로 좌우로 분포하는 형태입니다."indeterminate"가 "true"일 경우에, "value"는 아무 역할도 하지 않는 것일까요?
-
해결됨[초급] QML 프로그래밍 1편
"Desaturate" 코드 오타일까요?
안녕하세요. "Graphic Effect Part 1"을 보다가 영상 10:32 지점에서 "Desaturate" 설명 파트에서 코드 본문이 "GammaAdjust"로 설명이 진행되기에 혹시 해당 코드 내용이 오타가 아닐까 싶어서 문의드립니다. 감사합니다.
-
해결됨[초급] QML 프로그래밍 1편
Qt5Compat.GraphicalEffects 비활성화 문제 문의
안녕하세요.Graphic 첫 예제인 "Blend"를 써볼려고 하는데,"Main.qml" 가장 상단에 "import Qt5Compat.GraphicalEffects"를 추가하니, 해당 "import" 구문에 빨간 밑줄과 함께 "QML module not found" 에러 문구가 발생합니다.사용하는 QT 버전은 QT 6.7.2 버전입니다. 혹시 cmake에 추가로 연결해줘야하는 Components 들이 있을까요?아래 관련 코드 첨부해봅니다. 감사합니다.
-
해결됨[초급] QML 프로그래밍 1편
SquareButton 내 width/height가 필요한가요?
안녕하세요!SquareButton.qml 내에서 [width: 100, height:100]을 따로 선언해주시던데, Main.qml에서 SquareButton을 선언하고 [width: 300, height: 300]을 선언하게 되면, SquareButton.qml 내의 width/height와 중복이 아닐까 싶은데요. SquareButton.qml 내에서 width/height를 따로 선언하는 이유를 문의드립니다.
-
해결됨[초급] QML 프로그래밍 1편
"focus: true"는 한 번만 선언해주면 되나요?
<p>매번 좋은 강좌를 열어주셔서 감사드립니다. Qt6 때부터 유용하게 해당 강좌보면서 조금씩 익혀가고 있네요.질문은 제목처럼 "focus:true"를 한 번만 사용해도 무방한가 입니다.강의에서도 "Embedded Programming" TextInput 파트에서는 "focus:true"를 선언하지만, 그 다음 "Thread Programming"이 포함된 TextInput 파트에서는 따로 선언해주지는 않으시더라구요.혹시 전체 구문 혹은 parent에 해당하는 부분 내에서 한 번만 선언해주면 되는 부분인지 문의드립니다.</p>
-
해결됨[입문] Qt QML과 C++로 시작하는 크로스플랫폼 앱 개발
VisualStudio 2022 로 사용해도 큰 문제는 없나요?
VisualStudio 2022 로 사용해도 큰 문제는 없나요?2019 버전 다운로드가 막혔네요.Dev essential 가입해도 커뮤니티 버전은 막혔고 Visual C++ Redistributable for Visual Studio 2019 은 다운이 되는것 같은데, 2022 버전 사용해도 문제 없으면 2022버전 사용하려고 합니다. 어떤가요?
-
해결됨[입문] Qt QML과 C++로 시작하는 크로스플랫폼 앱 개발
visual studio 2019 버전 다운로드가 안보여요.
강의 "개발환경 셋팅" 보고 있는데요.MSVC 2019 설치 링크에 들어가 봤는데, 저는 visual studio 2019 다운로드 버튼이 안보이네요. 다운로드 받을 수 있는 방법이 있을까요?
-
미해결[초급] QML 프로그래밍 1편
C++ 내부 데이터 변경시 QML Viewer 업데이트
안녕하세요 강사님~위젯에서 QML로 갈아타면서 나이가 들어서 그런지 손에 익숙해지는데 시간이 걸리네요 ㅜ 다름이 아니라 C++로직에서 처리된 내용을 효율적으로 QML VIewer를 업데이트 하는 방안을 고민하고 있습니다. 예를 들어서 로직 내부에는 N개의 센서를 오브젝트로 관리하여 특정 주기로 센서의 객체를 업데이트하고 있습니다. 저희는 로직에서 관리하는 N개 센서 오브젝트를 AbstractiveListModel를 상속받아 모델 클래스를 하나 구현하여 센서 오브젝트의 포이터를 리스트로 관리하고 있습니다. 그리고 QML Viewer에서는 이 모델을 이용하여 그리드로 표현하고 해당 그리드 셀은 센서의 여러 정보를 출력해주고 있습니다. 내부적으로 데이터는 업데이트가 되고 있는데 그리드에 그려진 여러 셀들의 정보는 변하지 않습니다. 화면을 전환하여 다시 그리드 화면이 다시 그려질 때만 데이터가 변경이 되네요.글로 충분히 전달이 될지 몰라서 모델 코드와 QML 코드를 같이 보내드립니다. [ fr_model_device.cpp ] #include "fr_model_device.h"#include <QDebug>FR_Model_Device::FR_Model_Device(QObject *parent) : QAbstractListModel(parent){}int FR_Model_Device::rowCount(const QModelIndex &parent) const{ Q_UNUSED(parent) return m_data.size();}QVariant FR_Model_Device::data(const QModelIndex &index, int role) const{ if (index.isValid() && index.row() >= 0 && index.row() < m_data.size()) { FR_Device_TreeItem *dev = m_data[index.row()]; switch(role) { case DevInfo_Name: return dev->m_devInfo.m_sDevName; case DevInfo_Serial: return dev->m_devInfo.m_sSerialNo; case DevInfo_Index: return dev->m_devInfo.m_nDevNo; case DevInfo_Event: return dev->m_devInfo.m_nCur_Event; case DevInfo_Limit_1: return dev->m_devInfo.m_event_limit_lv1; case DevInfo_Limit_2: return dev->m_devInfo.m_event_limit_lv2; case DevInfo_InputLock: return dev->m_devInfo.m_nInputLock; case DevInfo_OutputLock: return dev->m_devInfo.m_nOutputLock; } } return {};}QHash<int, QByteArray> FR_Model_Device::roleNames() const{ static QHash<int, QByteArray> roles; roles[DevInfo_Name] = "name"; roles[DevInfo_Serial] = "serial"; roles[DevInfo_Index] = "index"; roles[DevInfo_Event] = "event"; roles[DevInfo_Limit_1] = "limit_1"; roles[DevInfo_Limit_2] = "limit_2"; roles[DevInfo_InputLock] = "inputLock"; roles[DevInfo_OutputLock] = "outputLock"; return roles;}void FR_Model_Device::slot_SetDeviceList(QList<FR_Device_TreeItem *> devList){ m_data = devList;}// 방안을 찾다가 이 부분도 추가해 보았는데 업데이트가 되질 않네요. void FR_Model_Device::slot_DataChanged(){ QModelIndex topLeft = index( 0, 0 ); QModelIndex bottomRight = index(this->rowCount()-1, 1); emit dataChanged( topLeft, bottomRight );} [Qml] import QtQuick 2.15import QtQuick.Controls 2.15Rectangle{ id: screen3 anchors.fill: parent // color: "blue" Image { id: backgroundImage anchors.fill: screen3 source: "qrc:/content/image/stockWallpaper.jpg" } GridView { id: gridView anchors.fill: parent anchors { left: parent.left right: parent.right top: parent.top bottom: parent.bottom margins: 10 } model: Fr3000_Controller.modelForCurDev cellHeight: 150 cellWidth: 150 delegate: Rectangle{ id: grid_item width: 130 height: 130 color: "lightgray" radius: 5 Rectangle { width: 120 height: 120 anchors.centerIn: grid_item color: "gray" radius: 5 Text{ font.pixelSize: 10 font.bold: true color: "white" text: "[Name]: " + name + "\n" + "[Serial]: " + serial + "\n" + "[DevNo]: " + index + "\n" + "[Event]: " + event + "\n" + "[Limit_1]: " + limit_1 + "\n" + "[Limit_2]: " + limit_2 + "\n" + "[InputLock]: " + inputLock + "\n" + "[OutputLock]: " + outputLock } MouseArea { anchors.fill: parent onClicked: console.log("Clicked Device") } } } }} 끝까지 읽어주셔서 감사합니다.
-
미해결[초급] QML 프로그래밍 1편
Qt Android Serial port
안녕하세요. 강사님~Android Phone으로 시리얼 케이블을 연결하여 간단한 장비를 제어하는 앱을 만들어보려고 하는데요...USB to RS232 어뎁터를 사용하여 연결을 하고 디버깅을 해보았는데 QSerialPortInfo::availablePorts()에서 "ttyGS0" 말고는 아무것도 탐색이 되질 않네요. 다른 Serial port 앱으로는 통신이 잘 되더라구요. 찾아보니 Qt5에서는 Qt Android에서 QSerial port를 지원하지 않는다고 되어있던데 Qt6에서도 여전히 지원이 않되는 건가요? 지원이 안된다면 다른 방법이 있을까요? 끝까지 읽어주셔서 감사합니다. ^^
-
해결됨[입문] Qt QML과 C++로 시작하는 크로스플랫폼 앱 개발
onParentChanged -> onParentsignal 이유 문의
강의를 따라하면서 도중에 갑자기onParentChanged가 onParentSignal로 수정이 되었던데 onParentChanged는 언제 사용하는 걸까요?
-
해결됨[초급] QML 프로그래밍 1편
Qt 라이센스 문의
안녕하세요. Qt 라이센스 정책에 관련하여 질문이 있습니다. 오랫동안 Qt 5.6 베이스로 개발을 진행해 왔습니다. 최근 나날이 디바이스 환경이 다양화되고 있어서 Qt 디자인 쪽 개선에 관심이 많습니다. 그래서 QML을 현재 검토 중에 있습니다. 강의도 Qt 6 버전으로 진행되고 있고 개선된 QML이나 Quick Controls 모듈 때문에서라도이후 버전으로 업그레이드를 해야 할 것 같더라구요. 그래서 지금 버전 업이나 상용라이센스를 검토 중에 있있습니다. 라이센스 비용이 작은 회사에서 만만치 않아서 고민도 되구요.. ㅠ ㅠ아래처럼 나무위키에 5.7부터는 LGPL v3 영향으로 상용라이선스로 갈아타야한다고 명시되어 있던데아래 구문의 의미가 잘 이해되지가 않네요. =================================================================LGPL v3 도입에 따른 영향Qt 5.7부터 LGPL v2.1이 폐지되었다. LGPL v3 상에서 개발할 경우 디바이스에 탑재되는 Qt Framework는 반드시 유저가 기기를 해킹할 수 있도록 만들어야 하는 조건이 생겼다.(Tivoization 방지) 이로 인해 인포매틱스 업체 등 디바이스에 Qt를 넣는 기업들은 유저의 해킹을 허용하는 방안을 생각하기가 힘드므로 Qt 5.6을 쓰던가 상용 라이선스를 구매해야 한다.==================================================================버전 업을 하면서 LGPL v3 모듈 동적 링크만으로 상업적용도로 배포가 가능한지..5. 7버전 이후로는 상용라이센스가 필수 인지 궁금합니다. 참고로 저는 LGPL 모듈에 한에서만 SW 개발을 진행하고 있습니다. 읽어주셔서 감사합니다.
-
해결됨[입문] Qt QML과 C++로 시작하는 크로스플랫폼 앱 개발
실행이 안되네요...
강의에서 알려주신 것처럼Visual studio 2019 community와 QT6를 설치했는데 아래 에러가 뜨면서 실행이 안되네요.. "ninja: build stopped: subcommand failed." 영상에서 알려준 설정을 모두 동일하게 적용했는데 왜 그럴까요..ㅜㅜ
-
미해결[초급] QML 프로그래밍 1편
기존에 작성된 Widget 화면을 재사용하는 방법이 있을까요?
<p>- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.</p>현재 개발하려고 하는 프로젝트는 QML 기반으로 작성하려고합니다. 그런데 기존에 Widget 기반으로 작성된 프로그램이있습니다. 몇몇 다이얼로그 화면(QDialog)은 그대로 재사용하고 싶은데, 혹시 가능한지요?가능하다면, 간단한 코드로 보여주시면 정말 감사하겠습니다.
-
미해결[초급] QML 프로그래밍 1편
Kit Selection에서 다음으로 넘어가지 않습니다.
<p>- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.</p>Ubuntu 18.04에서 Qt5.12.8을 설치했습니다.$ sudo apt install qtcreator$ sudo apt install qt5-defaultHelloWorld를 실행하려고, Qt Quick을 시작했는데이 화면에서 넘어가지 않습니다.어떤 항목때문에 그런지 확인부탁드립니다.
-
해결됨[초급] QML 프로그래밍 1편
우분투 22.04에서 6.2 버전 qtquick으로 프로젝트를 만들수가없습니다
안녕하세요 강의를 보고있는 수강생입니다!우분투 22.04에서 qt 6.2 버전으로 프로젝트를 생성이 불가능해서 질문드립니다!6.2버전으로 프로젝트는 생성이 불가능한데5.15버전에서는 프로젝트가 생성이 가능합니다 왜이러는지 모르겠습니다구글링해도 관련자료가 너무 없고 컴파일러 문제인가 싶어도 필요한건 다 다운받은것같구요..해결법알려주시면 정말 감사할것같습니다
-
미해결[초급] QML 프로그래밍 1편
.pro rename 방법
프로젝트를 생성한 후 프로젝트명을 변경하는 방법 여쭤봅니다.pro 파일 우클릭 후 Rename 탭이 있었지만 활성화돼있지않습니다.해결 방법이 있을까요?