From 49b3d45493b1391a59c0ac622fe8a5008d6b3172 Mon Sep 17 00:00:00 2001 From: quantulr <35954003+quantulr@users.noreply.github.com> Date: Tue, 23 Apr 2024 17:19:53 +0800 Subject: [PATCH] toolbar volume rotation --- crystalfly/VTK Error Out.txt | 240 +++++++++++++++++- crystalfly/assets/file.png | Bin 0 -> 293 bytes crystalfly/assets/plus.png | Bin 0 -> 188 bytes .../__pycache__/main_window.cpython-311.pyc | Bin 9048 -> 10292 bytes crystalfly/ui/main_window.py | 13 + crystalfly/ui/main_window.ui | 52 +--- 6 files changed, 263 insertions(+), 42 deletions(-) create mode 100644 crystalfly/assets/file.png create mode 100644 crystalfly/assets/plus.png diff --git a/crystalfly/VTK Error Out.txt b/crystalfly/VTK Error Out.txt index 19a514d..68bf22d 100644 --- a/crystalfly/VTK Error Out.txt +++ b/crystalfly/VTK Error Out.txt @@ -1,8 +1,244 @@ ERROR: In vtkDemandDrivenPipeline.cxx, line 677 -vtkCompositeDataPipeline (00000233450F5040): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (0000023343594B20) has 0 connections but is not optional. +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. ERROR: In vtkDemandDrivenPipeline.cxx, line 677 -vtkCompositeDataPipeline (00000233450F5040): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (0000023343594B20) has 0 connections but is not optional. +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. + + +ERROR: In vtkDemandDrivenPipeline.cxx, line 677 +vtkCompositeDataPipeline (000002067CD9E5B0): Input port 0 of algorithm vtkOpenGLGPUVolumeRayCastMapper (000002067B2660B0) has 0 connections but is not optional. diff --git a/crystalfly/assets/file.png b/crystalfly/assets/file.png new file mode 100644 index 0000000000000000000000000000000000000000..ecc93fc5f219a505944402bad4f62215b0b89594 GIT binary patch literal 293 zcmV+=0owkFP)m0G3aZFN73`zQwX}j(&Qt^EXcg(IX`XmCpT0;>%vu7ApVo2ygqM@`D}j7qwY6jn{cD_^X`n i|KU(|ud5aBXXXp-5_LP2ei#ESXYh3Ob6Mw<&;$UPPei@| literal 0 HcmV?d00001 diff --git a/crystalfly/ui/__pycache__/main_window.cpython-311.pyc b/crystalfly/ui/__pycache__/main_window.cpython-311.pyc index d427a5335b1a3539bcb567b459108fa4f42d766d..172eaa0f40556767dcb617606f51708cf7d0c862 100644 GIT binary patch delta 2375 zcmcIlU1(fI6rQLZ z0eYcL))lE0kD%C}rgBLwTfXI6{=It88>yF2FH-GGNOfp-&ATeYZ0Lm+X;7U*NOAqf zhYB|2{+K?YNQOL=Nb80)paX3lcz!gUGOPpLqk24@V%_*-e4X9IfupKv2}R7{l|{2^ z)>R2CLoYN{UP7xtUMMn9gcLNl`mdTbD@#h=Q()t9$(W>Cm*juhDdTpw@>KHJYWA~e z7DpVgI~!Y%3d1G@$W?!z@jRTY7AQr{89ZJ0CD zQyQfeATmfa8c)UbXw-0w(sU*hjfrzN>|^nS_F%wfG!*jMt1%PFSl>2xA` zI!0NYnFgxC*nIV|SUfcnPpRpd_M+WN5M;h#=giy6eZjMGo_IGJ0{rV?SIsk(#Bqbv zUnBK7;>#0XmiX8qOR&cVlT6V6sD%)Jfb>!VBBXQvgQlB{6!1&u3^bfF97(NzvZU~k zQt`YUAyt~UFW>YJtEL5XQCgeWGXS85n5)EABvN52PyZ=FlBT~`LXdd5(yKfPjRW615Z8b=Mdl!L}(Ed zi&{j`IcyTqA)MIUn4WBjG#= zXGwTtt00^soq5ukE&gfCdcWljQqL;@^>X0Vm-1pvd4-_0?6xa`18lJTeO$(VEq|?w zb^-s<6AiJk3O{aJf2*R`gj?7T)qi#F;Zu1HrF%K-15jl80(=YtDKZ#KjcfEpE;`0V zCfdyI)ihc}fO=SiJAen-Gw!!7EnH=A{d@P%l1JFw&lx3~!-|z|W8ZlO>UfmtAV7w% z8hjAzgRH~r!Kc=bdQV{7vi?bZNWy#A*S@yXTkR-j`VvetoZ#D#K9|sjCNxc_Bi!f- z4ktOB0@z}{8yNGokEGJ5mPm-o_PR#bk2g+Yv4K&{vhEu8qyIUd4`vv$Hmi+3c8Wn3 z4g~Qs8w~6avlJ(LGq8P;S3i-nl&2=;FP>qFr*zuGhX*-uH~1X@|D(~-1YAPlM^wRd zJ8(s)4i%E07iLkNIg$Ar;NBTX^}=sca+$YpqAgHc7zeH9u1!>eD%Kpl>JY)=cY6RN5#g@BP#sjsdS$_n@p?I t3GD!-FvQR^VYaX7uqBIH;m_ht7khdn44Zy3zSrW+}z{SOVX*gwyk7M%b9 delta 1385 zcmaJ=-)mb{96#sg=H}*So3_c4v}uwyNq6^9Tm=Okb4TY;e2w=_wza5 z@ArJq_kOnY&56Xv@py#b*eO<Pbo@!W5h%I4K+5qJ(VY?2p#iV6~Zo!`T!K!$xQV zJ_;q~UzG^a)A|94ED$rYPRuA%S$a#x<2d_6&zP|q(c(Xdtwue0sqUWFBu}o{UDuPA zU1-o-bmv{Ea08yJ; z10Ko;@kwTaMH+#V!4>#4c#$TdsAQC36gs!zs4@)~l}qqIDfDRcf|`q=ou>qdr{$vp zq5?+XjZvG9!_TAdQ59~EU3mNs`M6&!if+M09|4Mll?&dRevG;xc zB}%7y#|kBhmf>va(AoWdv>>0yV_qC{tGQQgRy)s_%NK;xlLDR>@B+d<_m83BT6#}K z8qBthdc(CYG1mLB)WV?f^7Jbc85DXlyTTg$8R2A4RVQF)x=7dI{&dy9trmlPxpG6a zfnRYhJ}56>bzD9tY_kGHU_K#;xM4Kxy5snf4UO_5T7Cb=`mZLM#_yaVLHva9>uY52 z+m)ih$}V{nq}?2RUH&rW*I&3;)UxnNMLV2ax>~bL_QdS6d&WB5?b;4kkoNZ2S1j`! za~&Q+J6EAtEn}O`R}0vttXiT`c(Xb=E?UtGI4&0r-L!0G7@o3P=d9zx=hexIh&t->c8T%FKt)UZxbU@$dM~_y?W)KKILiDEugY0v2a0 A)c^nh diff --git a/crystalfly/ui/main_window.py b/crystalfly/ui/main_window.py index eba9256..bfb2b6f 100644 --- a/crystalfly/ui/main_window.py +++ b/crystalfly/ui/main_window.py @@ -1,6 +1,7 @@ from pathlib import Path from PySide6.QtCore import Slot, Qt +from PySide6.QtGui import QIcon, QAction from PySide6.QtUiTools import loadUiType from PySide6.QtWidgets import QMainWindow, QSlider from vtkmodules.vtkRenderingOpenGL2 import vtkGenericOpenGLRenderWindow @@ -15,6 +16,8 @@ MainWindowType, _ = loadUiType(str(Path(__file__).parent.joinpath("main_window.u class MainWindow(QMainWindow, MainWindowType): def __init__(self): super(MainWindow, self).__init__() + self.cross_action = None + self.file_action = None self.volume = None self.transverse = None self.sagittal = None @@ -24,8 +27,18 @@ class MainWindow(QMainWindow, MainWindowType): self.file_open_dialog = ImportFile() self.file_open.triggered.connect(self.handle_file_open) self.init_four_pane() + self.init_tool_bar() self.is_pane_maximum = False + def init_tool_bar(self): + self.file_action = QAction(icon=QIcon(str(Path(__file__).parent.parent / "assets" / "file.png")), text="file", + parent=self) + self.cross_action = QAction(icon=QIcon(str(Path(__file__).parent.parent / "assets" / "plus.png")), text="cross", + parent=self) + self.file_action.triggered.connect(self.handle_file_open) + self.tool_bar.addAction(self.file_action) + self.tool_bar.addAction(self.cross_action) + def init_four_pane(self): self.coronal = VTKImageViewer(1) self.sagittal = VTKImageViewer(3) diff --git a/crystalfly/ui/main_window.ui b/crystalfly/ui/main_window.ui index 189436b..360d969 100644 --- a/crystalfly/ui/main_window.ui +++ b/crystalfly/ui/main_window.ui @@ -17,23 +17,7 @@ # background-color: rgb(50, 50, 50); - - - - - border-color: rgb(195, 195, 195); - - - - - - 工具栏 - - - - - - + @@ -131,30 +115,18 @@ margin-top: -1px; - - - - 0 - 0 - 800 - 21 - - - - - 文件 - - - - - - 工具 - - - - - + + + toolBar_2 + + + LeftToolBarArea + + + false + + 打开