inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

라즈베리파이에 크로스컴파일 질문 드립니다!!

해결됨

[초급] 중급자로 도약하기 위한 Qt/QML 실전 프로그래밍

로드맵을 따라 강의를 듣고 프로젝트를 진행중입니다!! windows 10 노트북에서 Qt/QML 6.5.3 LTS로 GUI를 개발했는데 산업용 라즈베리파이(Raspberry Pi Compute Module 3)에서 작동시키려고 합니다. SD카드의 용량이 8GB라서 어쩔 수 없이 windows 노트북 WSL 2에 우분투를 설치하여 라즈베리파이의 환경에 맞추어 크로스 컴파일 하고 있습니다. windows는 64비트 인데 라즈베리파이는 구형 모델이라 32비트인데 크로스 컴파일 해도 잘 작동 될지 모르겠습니다. 그리고 3D ui나 복잡한 ui 작업은 없지만 메모리가 1GB라서 잘 동작될지 궁금합니다. 신형 제품(Raspberry Pi Compute Module 4, sd카드 : 32gb, 1GB 메모리)을 구매하면 같은 64bit라서 좀더 수월하게 될지 궁금합니다!! 좋은 강의와 자료 항상 감사합니다

  • c++
  • gui
  • qt
  • qml
Son 댓글 2 좋아요 1 조회수 310

클래스 __init__(self) 설정에서 이해가 안 되는 부분이 있습니다.

미해결

[Level 1] Qt를 이용한 Python 프로그래밍: 입문편

안녕하세요. 궁금한 게 있으면 언제든지 질문하라고 하셔서... 용감(?)하게 질문해 봅니다. 매번 강의 너무 잘 듣고 있습니다^^ 강의를 따라 듣다 보니까, Pyside6에서 필요한 모듈은 모두 import한 다음, 클래스를 만들며넛 ui 제작이 시작되더라고요. 그런데, 처음 클래스를 만들고 초기화 할 때, init()메서드 부분이 잘 이해가 되지 않습니다. 어느 경우에는 parent를 매개변수로 설정하고, 어느 경우에는 super()를 안 쓰고 그러는데, 그냥 따라서 코드만 작성하기에는 뭔까 찝찝한 느낌이라 확실히 알고 코드를 작성하고 싶습니다. 검색을 해도...? "클래스를 만들 때는 그냥 쓰는 거다"라는 의미로 훅 넘어가는데... 이 구문들의 의미와 필요성?이 잘 와닿지가 않아 여쭙니다. 아래 첨부한 코드는 section13에 3번째 강의 내용 중 발췌한 내용입니다. class PriceApp(QWidget): def __init__(self): super(PriceApp, self).__init__() self.ui = Ui_Widget() self.ui.setupUi(self) self.setWindowTitle("QDataSteam Example")

  • python
  • gui
  • qt
  • qml
  • pyside6
lightstone87 댓글 2 좋아요 2 조회수 346

강의노트 위치??

해결됨

[Qt/QML 실전 Part 2] C++ 개발자를 위한 실전 프로젝트 6종 (REST API)

강의노트는 어디서 볼수 있나요??

  • c++
  • rest-api
  • qt
  • qml
  • desktop-application
김준원 댓글 2 좋아요 0 조회수 173

자주 사용하는 Layout 살펴보기

미해결

[Level 1] Qt를 이용한 Python 프로그래밍: 입문편

수업 잘 듣고 있습니다. GrideLayout에서 btn3에서 layout.addWidget(btn3, 1, 0, 1, 2) 라고 되어 있는데 왜 1, 2인가요? 1, 1은 없이 바로 1,2로 넘어가는게 이해가 잘 안됩니다. [1, 0] [1, 1] [1, 2] 이렇게 그리드가 형성되는 거 아닌가요?

  • python
  • gui
  • qt
  • qml
  • pyside6
kurugi 댓글 2 좋아요 1 조회수 183

강의 pdf파일 올려 주시면 안될까요?

미해결

[Level 1] Qt를 이용한 Python 프로그래밍: 입문편

강의 잘 듣고 있습니다. 노트 정리도 하면서 들으려니 시간이 많이 걸려서 pdf파일 올려 주시면 정리하기 편할것 같습니다.

  • python
  • gui
  • qt
  • qml
  • pyside6
kurugi 댓글 2 좋아요 2 조회수 264

TableView에서 ImplicitWidth, ImplicitHeight와 일반 width, height의 차이가 궁금합니다.

해결됨

[초급] QML 프로그래밍 2편

안녕하세요. TableView의 예제에서 ImplicitWidth와 ImplicitHeight 대신 width, height를 그냥 사용하였더니, Rectangle의 사이즈가 설정해준 값을 유지하지 못하고 그 보다 작은 정사각형 형태로 실행되어버리네요. 혹시 Component 내에서 Rectangle 사용 시에는 Implicit를 width와 height에 꼭 붙여서 사용해야 하고, 일반 width와 height는 사용하면 안되는 걸까요?

  • c++
  • qt
  • qml
다중언어GUI 댓글 1 좋아요 1 조회수 255

GridView에서 Padding과 Margin의 차이가 있을까요?

해결됨

[초급] QML 프로그래밍 2편

안녕하세요. GridView 예제에서 topPadding과 같이 Padding을 통해 간격을 설정하는 거 같던데, Margin을 사용하는 것과 차이가 있는걸까요?

  • c++
  • qt
  • qml
다중언어GUI 댓글 1 좋아요 1 조회수 182

ListView에서 currentIndex 작동안됩니다.

해결됨

[초급] QML 프로그래밍 2편

안녕하세요. ListView의 예제에서 currentIndex: 50 으로 두고 실행시켜보아도 실행 시 시작은 항상 0에서 시작합니다. currentIndex: 50이면 실행 직후 창에 보이는 시작 인덱스가 0이 아닌 50에서 시작할 거 같은데 맞을까요?

  • c++
  • qt
  • qml
다중언어GUI 댓글 3 좋아요 1 조회수 201

설명이 가려서 보이질 않습니다.

해결됨

[초급] QML 프로그래밍 2편

매번 좋은 강의 감사드립니다. Chess Game 구현 Part1 에서 영상 뒷부분 좌표 설명 시 강사님 모습에 가려서 설명이 보이질 않는데요. 혹시 해당 부분 수정이 가능할까요?

  • c++
  • qt
  • qml
다중언어GUI 댓글 2 좋아요 1 조회수 142

"ProgressBar"의 'indeterminate" 및 "value" 관계 문의드려요.

해결됨

[초급] QML 프로그래밍 1편

안녕하세요. "ProgressBar"에서 "indeterminate"를 "true"로 하니 짧은 막대바 4개가 움직이면서 작동합니다. 다만, "value"가 0.7이니 막대바의 모션이 70% 위치까지 이동하는 줄 알았으나, 해당 "value"값을 0.1~0.9까지 변동시켜보아도 전체 바에서 막대바의 모션 범위는 변화없이 바의 중앙을 기준으로 좌우로 분포하는 형태입니다. "indeterminate"가 "true"일 경우에, "value"는 아무 역할도 하지 않는 것일까요?

  • qt
  • qml
다중언어GUI 댓글 2 좋아요 1 조회수 234

"Desaturate" 코드 오타일까요?

해결됨

[초급] QML 프로그래밍 1편

안녕하세요. "Graphic Effect Part 1"을 보다가 영상 10:32 지점에서 "Desaturate" 설명 파트에서 코드 본문이 "GammaAdjust"로 설명이 진행되기에 혹시 해당 코드 내용이 오타가 아닐까 싶어서 문의드립니다. 감사합니다.

  • qt
  • qml
다중언어GUI 댓글 2 좋아요 1 조회수 185

Qt5Compat.GraphicalEffects 비활성화 문제 문의

해결됨

[초급] QML 프로그래밍 1편

안녕하세요. Graphic 첫 예제인 "Blend"를 써볼려고 하는데, "Main.qml" 가장 상단에 "import Qt5Compat.GraphicalEffects"를 추가하니, 해당 "import" 구문에 빨간 밑줄과 함께 "QML module not found" 에러 문구가 발생합니다. 사용하는 QT 버전은 QT 6.7.2 버전입니다. 혹시 cmake에 추가로 연결해줘야하는 Components 들이 있을까요? 아래 관련 코드 첨부해봅니다. 감사합니다.

  • qt
  • qml
다중언어GUI 댓글 2 좋아요 1 조회수 257

SquareButton 내 width/height가 필요한가요?

해결됨

[초급] QML 프로그래밍 1편

안녕하세요! SquareButton.qml 내에서 [width: 100, height:100]을 따로 선언해주시던데, Main.qml에서 SquareButton을 선언하고 [width: 300, height: 300]을 선언하게 되면, SquareButton.qml 내의 width/height와 중복이 아닐까 싶은데요. SquareButton.qml 내에서 width/height를 따로 선언하는 이유를 문의드립니다.

  • qt
  • qml
  • squarebutton
다중언어GUI 댓글 2 좋아요 1 조회수 234

"focus: true"는 한 번만 선언해주면 되나요?

해결됨

[초급] QML 프로그래밍 1편

<p> 매번 좋은 강좌를 열어주셔서 감사드립니다. Qt6 때부터 유용하게 해당 강좌보면서 조금씩 익혀가고 있네요. 질문은 제목처럼 "focus:true"를 한 번만 사용해도 무방한가 입니다. 강의에서도 "Embedded Programming" TextInput 파트에서는 "focus:true"를 선언하지만, 그 다음 "Thread Programming"이 포함된 TextInput 파트에서는 따로 선언해주지는 않으시더라구요. 혹시 전체 구문 혹은 parent에 해당하는 부분 내에서 한 번만 선언해주면 되는 부분인지 문의드립니다.</p>

  • qt
  • qml
  • textinput
  • focus
다중언어GUI 댓글 1 좋아요 1 조회수 148

VisualStudio 2022 로 사용해도 큰 문제는 없나요?

해결됨

[Qt/QML 기초 Part 1] C++ 연동과 시그널-슬롯으로 배우는 크로스플랫폼 앱 개발

VisualStudio 2022 로 사용해도 큰 문제는 없나요? 2019 버전 다운로드가 막혔네요. Dev essential 가입해도 커뮤니티 버전은 막혔고 Visual C++ Redistributable for Visual Studio 2019 은 다운이 되는것 같은데, 2022 버전 사용해도 문제 없으면 2022버전 사용하려고 합니다. 어떤가요?

  • 하이브리드-앱
  • c++
  • gui
  • qt
  • qml
TaeWoo Park 댓글 1 좋아요 0 조회수 502

visual studio 2019 버전 다운로드가 안보여요.

해결됨

[Qt/QML 기초 Part 1] C++ 연동과 시그널-슬롯으로 배우는 크로스플랫폼 앱 개발

강의 "개발환경 셋팅" 보고 있는데요. MSVC 2019 설치 링크에 들어가 봤는데, 저는 visual studio 2019 다운로드 버튼이 안보이네요. 다운로드 받을 수 있는 방법이 있을까요?

  • 하이브리드-앱
  • c++
  • gui
  • qt
  • qml
그릿 댓글 1 좋아요 0 조회수 11561

C++ 내부 데이터 변경시 QML Viewer 업데이트

미해결

[초급] QML 프로그래밍 1편

안녕하세요 강사님~ 위젯에서 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.15 import QtQuick.Controls 2.15 Rectangle{ 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
  • qml
주영대감 댓글 1 좋아요 0 조회수 297

Qt Android Serial port

미해결

[초급] QML 프로그래밍 1편

안녕하세요. 강사님~ Android Phone으로 시리얼 케이블을 연결하여 간단한 장비를 제어하는 앱을 만들어보려고 하는데요... USB to RS232 어뎁터를 사용하여 연결을 하고 디버깅을 해보았는데 QSerialPortInfo::availablePorts()에서 "ttyGS0" 말고는 아무것도 탐색이 되질 않네요. 다른 Serial port 앱으로는 통신이 잘 되더라구요. 찾아보니 Qt5에서는 Qt Android에서 QSerial port를 지원하지 않는다고 되어있던데 Qt6에서도 여전히 지원이 않되는 건가요? 지원이 안된다면 다른 방법이 있을까요? 끝까지 읽어주셔서 감사합니다. ^^

  • qt
  • qml
주영대감 댓글 1 좋아요 0 조회수 356

onParentChanged -> onParentsignal 이유 문의

해결됨

[Qt/QML 기초 Part 1] C++ 연동과 시그널-슬롯으로 배우는 크로스플랫폼 앱 개발

강의를 따라하면서 도중에 갑자기 onParentChanged가 onParentSignal로 수정이 되었던데 onParentChanged는 언제 사용하는 걸까요?

  • 하이브리드-앱
  • c++
  • gui
  • qt
  • qml
다중언어GUI 댓글 2 좋아요 1 조회수 460

Qt 라이센스 문의

해결됨

[초급] QML 프로그래밍 1편

안녕하세요. 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
주영대감 댓글 1 좋아요 2 조회수 1688

인기 태그

인프런 TOP Writers

주간 인기글