레이블이 Qt인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Qt인 게시물을 표시합니다. 모든 게시물 표시

2023년 3월 22일 수요일

GEANT4 설치 Ubuntu 22.04

Geant4 , Ubuntu, Qt 등의 version이 바뀜에 따라 인터넷에서 찾아본 설치과정이 더 이상 옳지 않은 경우가 생겼다. 

그래서, 현재 버전 (Geant 4 v.11, Ubuntu 22, Qt 5)에 맞는 설치 방법을 찾아야 했다.

설치 과정은 다음 링크를 주로 참고 했다.  

 https://evanote.mew.kr/course/g4install/ubuntu/g4install-111-ubt2204/


List of steps to install Geant4 in Ubuntu

(1) 시스템 업데이트 

sudo apt update -y && sudo apt upgrade -y && sudo apt autoremove -y

(2) 필수 프로그램 설치

sudo apt install -y build-essential

sudo apt install -y cmake

sudo apt install -y libexpat1-dev

sudo apt install -y libxmu-dev

(3) Qt 설치:

웹페이지에는

sudo apt install -y qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools

이면 충분하다고 되어 있으나,Qt53D 실행에 문제가 있어서, 아예 remove하고

새로 Qt 를 정식 홈페이지에서 다운 받아 설치 했다.

(4) Geant4 source 코드를 다운 받음.

(5) cmake를 이용하여 build 준비 

sudo cmake <source path > -DCMAKE_INSTALL_PREFIX="<install path>" -DGEANT4_BUILD_MULTITHREADED=ON -DGEANT4_INSTALL_DATA=ON -DCMAKE_PREFIX_PATH="< Qt path >Qt/5.15.2/gcc_64/lib/cmake/" -DGEANT4_USE_QT=ON

(6) build and install
sudo make && make install


예제코드를 compile하기 위해서는 

cmake < example path > && make 

를 하면 된다. 

2020년 9월 8일 화요일

PyQt5 : Access parent from child widget

To access parent widget from child widget,

one have to explicitly set parent when define child. 

Then, one can access parent widget by using widget.parent()

Following is a short example.  

class test_parent_child(QWidget,):
    def __init__(self):
        super().__init__()
        self.a = 1
        self.b = 2
        self.child = QLabel('1',parent=self)        
parent_widg = test_parent_child()
print(parent_widg.child.parent().a)

>> 1