Developments

Developments/QT

Qt Custom Widget Tutorial #2 [Plugin만들기]

2강부터는 1강의 Intro 에서 설명했었던 방식에서 Plugin 을 활용하여 Custom Widget을 개발하는 방법을 설명하겠습니다. 우선 기본 프로젝트를 생성하고 ui 파일을 등록하는 방법을 설명하도록 하겠습니다. 1. Plugin 프로젝트 만들기 Visual studio에서 새로운 프로젝트를 Qt Designer Custom Widget template를 이용해서 생성합니다. 우선 새로운 솔루션과 프로젝트를 생성합니다. QtWidgetTutorial 솔루션을 만들고 이 솔루션에 계속 이어질 프로젝트들을 연결할 예정입니다. Widget Wizard 를 보면 아래의 Widget을 위한 클래스와 Plugin 클래스가 생성되는 것을 확인할 수 있습니다. 생성된 프로젝트의 파일 구조를 보면 자동으로 MyW..

Developments/QT

Qt Custom Widget Tutorial #1 [Intro]

필자는 그동안 주로 C# 기반의 프로그램을 개발하였고 여러 형태의 GUI 개발을 해왔습니다. 그런 경험 때문에 Qt에서도 당연히 Widget을 여러개로 분류하고 필요에 따라서 조합하여 사용하는 것을 당연하다고 생각했습니다. 하지만, Qt에서는 이런 개발 방식에 매우 불편하고 친절한 tutorial 이 없는 것 같습니다. 그래서 이번에는 Qt 를 이용하여 사용자의 Custom Widget을 적용하는 방법에 대해 공부한 것들을 개인적으로 정리하면서 필요하신 분들에게 공유하고자 부족한 내용이나마 연재하고자 합니다. 우선 공식 문서에 따르면 Qt에서 Custom Widget을 만드는 방법은 Promotion 과 Plugin 방식으로 두가지로 접근이 가능합니다. 1. Promotion 방식 우선 Promotion..

Developments/QT

Qt Widget , Window 개념잡기

1. Widget 이란? Widget은 QT에서 GUI를 구성하는 가장 기본적인 컨트롤 유닛을 말한다. 모든 Widget은 parent-child 계층 관계를 갖게되어 있으며, parent widget에 속하지 않은 widget은 window라고 한다. Qt의 모든 widget은 화면에 어떻게 표시 될지 사용자와 어떤 상호작용을 할지에 대한 기능들을 제공한다. 2. Window 의 역할 Window는 데스크탑에서 task bar에 application으로 등록되어 관리된다. 하지만 앞서 말했듯이 parent가 없는 widget은 모두 window가 된다고 했다. 그렇기에 모든 window가 taskbar에 나타나는게 아니라 applicaiton 에 하나의 window만을 taskbar에 등록되도록 pri..

Developments/QT

Widget Window Screen 제어하기

1. Widget Window Screen center 이동시키기 void CenterOnScreen(QWidget* widget) { QScreen* screen = QGuiApplication::primaryScreen(); QRect screenGeom = screen->availableGeometry(); int screenCenterX = screenGeom.center().x(); int screenCenterY = screenGeom.center().y(); widget->move(screenCenterX - widget->width() / 2, screenCenterY - widget->height() / 2); } 2.Window FullScreen 변경하기 방법1 : setWindowS..

Developments/QT

Custom WindowTitlebar Mouse 이동시키기

WindowTitleBar 를 custom title widget으로 생성하였다고 하였을 때 mouse event를 이용하여 window의 위치를 변경할 수 있다. QPoint m_Diff; void WindowTitleBar::mousePressEvent(QMouseEvent* event) { m_Diff = event->pos(); setCursor(QCursor(Qt::SizeAllCursor)); } void WindowTitleBar::mouseReleaseEvent(QMouseEvent* event) { Q_UNUSED(event); setCursor(QCursor(Qt::ArrowCursor)); } void WindowTitleBar::mouseMoveEvent(QMouseEvent* ev..

Developments/VTK

[QVTK] QtWidget에 Vtk RenderWindow 설정하기

본 내용은 Qt6.2.1 + Vtk9.0 버전을 기준으로 작성하였다. 개발 환경 구축을 위한 내용은 다음을 참조하길 바란다. Qt6.2+Vtk9.0+Itk5.2 개발환경구축(예정) QtWidget 에 Vtk의 render window를 설정하는 방법을 설명하고자 한다. 1. OpenGLWidget Promotion Qt Designer의 Widget 상자에서 OpenGL Widget 을 메인 Widget에 추가한다 OpenGLWidget을 오른쪽 마우스 클릭하여 다음으로 승격(Promotion)을 클릭한다. Promotion 창이 나타나면 클래스 이름에 QVTKOpenGLWidget 을 입력하고 추가 후 승격 버튼을 클릭한다. 클래스이름을 입력할 때 대소문자를 맞춰서 입력해야한다. Promotion이 적..

Developments/QT

Qt 컨트롤에 배경 이미지 넣기

1. QPushButton에 배경이미지 넣기 void setButtonBackImage(QPushButton *button,QString image,int sizeW, int sizeH) { //163,163 Is the original resolution , Here's a little adjustment . QPixmap pixmap(image); QPixmap fitpixmap=pixmap.scaled(163,163).scaled(sizeW, sizeH, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); button->setIcon(QIcon(fitpixmap)); button->setIconSize(QSize(sizeW,sizeH)); button->setF..

Developments/QT

VisualStudio 프로젝트를 Qt Creator에서 불러오기

우선 필자는 윈도우 Visual Studio 에서의 개발이 익숙하며 Qt는 python 에서 간단히 사용한 경험만 있고, 거의 입문자와 같은 단계이다. 그래서 우선은 Visaul Studio 2019 Qt VSTools을 설치하여 개발환경을 구축하였다. 하지만, 최근에는 Linux 환경에서의 개발을 함께 하면서 Qt를 여러 환경에서 경험하기 위해서 VS와 Creator 간의 프로젝트 전환하는 것이 잘 안되는 문제점에 대해 해결 방법을 찾게 되어 정리한다. 1. 프로젝트 생성하기 기본적으로 VS를 이용하여 Qt 프로젝트를 생성하는 방법에 대한 tutorial 은 Qt manual에서 설명해주고 있다. Getting Started | Qt VS Tools Manual Getting Started | Qt V..

Developments/ITK

[SimpleItk] Tutorial 설치하기

SimpleItk 의 Tutorial python code 가 있어서 설치하고 공부하려고 한다. SimpleItk 는 Kitware 의 Itk의 wrapper 이며, python, c#, Tcl/tk 등을 지원한다. 요즘 python 을 게속 사용해보려고 노력중이라서 python 의 tutorial 코드를 보면서 공부를 시작하려고 한다. 우선 설치에 대한 내용은 모두 링크에 나와 있다. https://simpleitk.org/TUTORIAL/ SimpleITK Tutorial If you encounter problems or have tutorial specific questions, please post on the tutorial's GitHub issue reporting system (requi..

Developments/QT

[QT5] VSCode 에서 qt5 실행 시 display 오류 해결

우분투 20.04 + VSCode 환경에서 Python QT5를 사용해보고자 하였다. 파이썬에서는 당연히 쉽게 패키지를 설치하였다. pip install PyQt5 그리고 import PyQt5 까지도 가능한 상태이나 vscode 에서 실행하려고 하면 아래와 같은 에러가 발생한다. 뭐지 싶어서 xcb plugin을 다시 설치하기도 하였으나 해결되지 않았다. vscode가 아닌 터미널 환경에서 실행하였을 때에는 문제없이 실행되었다. 검색결과 'echo $DISPLAY' 환경 변수 값을 확인하라고 하였는데 터미널에서는 확인할 때는 문제 없었다. 다만, vscode의 터미널에서 확인할 때에는 값이 없다는것을 확인했다. 시스템 환경변수일거라 생각하는데 왜 vscode에서는 값이 없다고 표시되는지 모르겠지만, 우..

RichardBang
'Developments' 카테고리의 글 목록 (6 Page)