묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[입문] Qt 6 프로그래밍 2편
QImage에서 이미지가 안불러와집니다.
인터넷에서 임의의 이미지를 다운받아Add Existing Files를 통해 파일을 추가했습니다.예제를 참고해서 아래와 같이 구성했는데 이미지가 불러와지지 않네요..(코드 사진도 추가해봅니다.) 예시 : QImage image(":/resource/image.jpg"); 아래 그림에서 Resources -> resource -> image.jpg 이지만, 실제 경로는 resource -> image.jpg 입니다. (Resources 폴더는 실제로는 없고, 프로젝트 내에서만 존재) 어떻게 하면 이미지를 불러올 수 있을까요..?
-
해결됨[입문] Qt 6 프로그래밍 1편
Qt5 라이센스 질문(상업적용도)
안녕하세요.회사에서 진행하는 프로젝트에서 Qt를 사용하게 되어 강의를 수강하고 있습니다. 라이센스가 생각보다 복잡해서ㅜ 질문드립니다. 아래와 같이 제가 이해한 바가 맞는지 확인해주시면 감사하겠습니다~!상업 라이센스(유료버전), 오픈소스 라이센스(무료버전)가 존재함오픈소스 라이센스에는 모듈별로 LGPL 또는 GPL3.0 라이센스가 적용됨LGPL 라이센스는 라이브러리를 수정하지 않고 동적 링킹하여 사용하면 결과물에 대한 소스코드 공개가 없음GPL 라이센스는 라이브러리 수정 유무와 관계없이 결과물의 소스코드를 공개해야 함 따라서, LGPL 라이센스가 적용된 모듈만 사용하면 소스코드 공개 의무는 없고 Qt를 사용했다는 명시만 하면되는 걸로 이해했습니다. 그리고 아래는 qt 홈페이지(https://doc.qt.io/qt-5/qtmodules.html#gpl-licensed-addons)에 나와있는 GPL3 라이센스 적용 모듈들입니다. 해당 모듈만 피해서 개발하면 되는것 맞을까요?
-
해결됨[초급] 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>
-
해결됨웹 개발의 혁신: C, C++, Rust로 시작하는 WebAssembly 마스터 클래스
UTF8ToString 인코딩 질문있습니다.
#include <iostream> #include <string> #include <emscripten.h> #include <emscripten/bind.h> using namespace std; EM_JS(void, call_js, (const string subject, const string msg), { console.log("Subject: js " + subject, UTF8ToString(msg)); console.log("Pointer: js " + msg, UTF8ToString(subject)); jsFunction(UTF8ToString(subject), UTF8ToString(msg)); }); bool my_calls() { const string subject = "제목"; const string msg = "메세지"; cout << "Subject: cpp " << subject << "\nPointer: cpp " << msg << endl; call_js(subject, msg); return true; } EMSCRIPTEN_BINDINGS(my_module) { emscripten::function("callJs", &my_calls); }UTF8ToString으로 변환할때 포인터와 length로 변환하야하나요?string 타입을 직접 utf8로 변환해도 되는것 같은데 해당방식으로 문제가 생길 수 있는지 궁금합니다.
-
미해결[입문] Qt 6 프로그래밍 1편
Qt creator 환경문제
안녕하세요 지금 qt강의를 듣고 있는학생인데요현재 다른 노트북에서 작업해야해서 그쪽 노트북에 있는 큐티 크리에이터로 hello world찍고 콘솔로 나오게 하려고 했는데 Cannot run compiler g++.output이란 메시지가 뜨고컴파일 아웃풋에서는 the process "C:\Qt\Qt5.11.3\5.11.3\mingw53_32\bin\qmake.exe" exited with Code3. 라고 나오는데 어떻게 해결해야하나요 도와주세요
-
해결됨[입문] Qt QML과 C++로 시작하는 크로스플랫폼 앱 개발
VisualStudio 2022 로 사용해도 큰 문제는 없나요?
VisualStudio 2022 로 사용해도 큰 문제는 없나요?2019 버전 다운로드가 막혔네요.Dev essential 가입해도 커뮤니티 버전은 막혔고 Visual C++ Redistributable for Visual Studio 2019 은 다운이 되는것 같은데, 2022 버전 사용해도 문제 없으면 2022버전 사용하려고 합니다. 어떤가요?
-
미해결[입문] Qt 6 프로그래밍 1편
프로젝트 생성시 kits selection에서 워닝마크
안녕하세요. 제가 이번에 처음으로 QT를 배우는데요. 항상 kit selection에서 이렇게 워닝마크가 떠서요. 다 프로젝트 생성후 project Mode에가서 다시 Configure project를해야 되더라구요...이런식으로요..제가 프로젝트나 QT 인스톨시 설정시 잘못된건가요..?
-
해결됨[입문] 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") } } } }} 끝까지 읽어주셔서 감사합니다.
-
미해결[입문] Qt 6 프로그래밍 1편
Container Class 관련 질문
안녕하세요Container Class 쪽 강의 수강하다가 궁금한게 생겨서 질문 드립니다.C++ 에서 제공하는 STL 과 QT 에서 제공하는 Container Class 가 거의 비슷한거 같은데둘이 어떤 차이가 있는건가요?QT Project 에서 STL 로 처리하는건 안되는건가요?감사합니다
-
미해결[초급] QML 프로그래밍 1편
Qt Android Serial port
안녕하세요. 강사님~Android Phone으로 시리얼 케이블을 연결하여 간단한 장비를 제어하는 앱을 만들어보려고 하는데요...USB to RS232 어뎁터를 사용하여 연결을 하고 디버깅을 해보았는데 QSerialPortInfo::availablePorts()에서 "ttyGS0" 말고는 아무것도 탐색이 되질 않네요. 다른 Serial port 앱으로는 통신이 잘 되더라구요. 찾아보니 Qt5에서는 Qt Android에서 QSerial port를 지원하지 않는다고 되어있던데 Qt6에서도 여전히 지원이 않되는 건가요? 지원이 안된다면 다른 방법이 있을까요? 끝까지 읽어주셔서 감사합니다. ^^
-
미해결웹 개발의 혁신: C, C++, Rust로 시작하는 WebAssembly 마스터 클래스
build system 선택창
안녕하세요. 미루다가 이제야 듣고 있습니다. 저는 빌드시스템 선택창(cmake, qmake) 이 나오지 않습니다. 혹시 버전이 다른건가요? 제가 수강기간이 무제한인줄 알았습니다. qt에 큰 관심이 없어서 qt부분만 미루다가, 수강기간이 며칠 안남았습니다. 혹시 수강기간을 조금 연장해주실수는 없을까요? 혹은 추가비용을 조금 내서라도 가능한지 궁금합니다.