본문 바로가기

프로그래밍/시스템

(53)
C++ Qt 핑 프로그램 만들기 핑 테스트 프로그램을 만들기 위해서 핵심적으로 사용되는 클래스는 QProcess다. 대략적인 로직은 QProcess로 호스트에 Ping을 날려서 돌아오는 결과값을 파싱하게된다. 다음은 예제 코드다. 192.168.0.2 핑테스트 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 class MainWindow { private slots: void OnPing(); void OnPingEnded(); private: QProcess mPingProcess; }; void MainWindow::OnPing() { connect(&mPingProcess,SIGNAL(fini..
C++ Qt 윈도우 배포용 라이브러리 추가 C++ Qt 윈도우 배포용 라이브러리 추가 ① QT에서 Release 후 나온 exe파일을 복사해서 새 폴더로 옮긴다. 예를들어 C:\build-target_file-Desktop_Qt_5_9_5_MinGW_32bit-Release\release\ 가 빌드된 파일이 있는 곳이라면 맨 하위폴더인 Release 밑에 원하는 이름으로폴더를 만든 뒤 해당 폴더에 exe를 옮겨넣는다. ② CMD에서 다음 명령을 통해 라이브러리를 추가 2-1 cd C:\Qt\5.9.5\mingw53_32\bin\
C++ 11 람다표현식(Lambda expression) 람다함수란? 프로그래밍 언어에서 사용되는 개념으로 이름이 없는함수(익명함수)를 지칭하는 용어다. 일반 함수의 경우 선언 , 정의 , 호출의 과정이 있지만 람다식은 이를 한번에 표현한다. ▶ 장점 1.코드의 간결성: 효율적인 람다 함수의 사용을 통하여 불필요한 루프문의 삭제가 가능하며, 동일한 함수를 재활용할 수 있는 여지가 커진다. 2.필요한 정보만을 사용하는 방식을 통한 퍼포먼스 향상: 지연 연산을 지원하는 방식을 통하여 효율적인 퍼포먼스를 기대할 수 있다. 이 경우 메모리 상의 효율성 및 불필요한 연산의 배제가 가능하다는 장점이 있다. ▶ 단점 1.어떤 방법으로 작성해도 모든 원소를 전부 순회하는 경우는 람다식이 조금 느릴 수 밖에 없다. (어떤 방법으로 만들어도 최종 출력되는 bytecode나 어셈..
C++ Qt 잡지식 스크린 모드 변경 1 2 this->showFullScreen(); // 전체화면 모드 this->showMaximized(); // 최대화 cs 테이블 컬럼 크기 조절 & 테이블 편집 기능 비활성화 1 2 QHeaderView::ResizeMode(QHeaderView::Stretch); ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); cs ScrollArea에 이미지 삽입 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 QPixmap img("C:\\mypng.png"); if (!img.isNull()){ img = img.scaled( img.width(),img.height() ); QLabel *labe..
C++ Qt 엑셀 사용하기 Qt 엑셀 라이브러리 https://github.com/dbzhang800/QtXlsxWriter ↗ 사용 예제 https://github.com/dbzhang800/QtXlsxWriter/blob/master/examples/xlsx/demo/main.cpp 위 링크에 들어가서 엑셀 라이브러리를 다운받은 후 해당 프로젝트로 받은 폴더를 옮긴다. 그리고 pro 파일에서 엑셀 라이브러리의 qtxlsx.pri를 include 한다. 1 include(QtXlsxWriter-master\QtXlsxWriter-master\src\xlsx\qtxlsx.pri) cs
C++ Qt XML 예제 중심으로 작성한 글입니다. QT에서 XML을 사용하기 위해 헤더파일과 Pro파일에 xml을 추가합니다. http://doc.qt.io/qt-5/qtxml-module.html 1 #include cs 1 QT += xml cs ● XML 문서 작성 ○ XML 예제 1 2 3 4 5 cs ○ XML 작성 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 QString File_Path = "C://Users/test.xml"; QStringList text; text.append("WINDOW"); text.append("LINUX"); text.append("UNIX"); QDomDocument doc; QDomElement xml = doc.createElement("scrip..
C++ Qt Ui Style Sheet 활용 Stylesheet를 적용하기 위한 두 가지 방법이 있습니다. 1.Ui 디자인에서 CSS를 적용하려는 위젯을 우클릭 , Change StyleSheet... 클릭하고 편집기에서 CSS 코드를 작성합니다. 2.setStyleSheet 함수를 사용합니다. http://doc.qt.io/qt-5/stylesheet-examples.html App->setStyleSheet("QLineEdit { background-color: yellow }"); cs ● CSS 기본문법활용 http://doc.qt.io/qt-5/stylesheet-reference.html 다음은 label 샘플코드입니다. sample1 sample1 css code 1 2 3 4 5 border-radius: 15px; padding: ..
C++ Qt 화면 크기에 따라 레이아웃 조절 레이아웃 구성이 제대로 되야 위젯들이 화면 크기에 맞게 조절된다. 방법은 구성할 위젯들을 각각 가로바 또는 세로바 레이아웃으로 묶은 뒤 마지막에 상위 위젯을 Grid Layout으로 바꾼다. 구현하기에 따라서 위젯을 숨겼다가 보이게 하고 싶은 경우도 있을 수 있는데 , 예시로 stackedWidget을 hide로 감춘다고 하면 hide한 위젯은 없는걸로 취급하고 레이아웃을 조정하게 되므로 원치않는 결과를 얻을 수 있다. 그럴 때 위젯이 감춰져도 레이아웃 크기를 유지시켜주는 코드를 사용한다. // retain size of layout QSizePolicy layout_retain = ui->stackedWidget->sizePolicy(); layout_retain.setRetainSizeWhenHidd..