g4display
Loading...
Searching...
No Matches
g4displayview.h
Go to the documentation of this file.
1#pragma once
2
3// Qt
4#include <QtWidgets> // Includes necessary Qt Widget headers
5
6// gemc
7#include "glogger.h" // Logging utility
8#include "gQtButtonsWidget.h" // Custom toggle button widget
9#include "goptions.h" // Forward GOptions type
10
11
12// Geant4
13#include "G4UImanager.hh" // Geant4 UI manager access
14
15
27class G4DisplayView : public QWidget {
28 Q_OBJECT // Macro required for signals, slots, and Qt meta-object features
29
30public:
37 G4DisplayView(const std::shared_ptr<GOptions>& gopts, std::shared_ptr<GLogger> logger, QWidget* parent = nullptr);
38
44 ~G4DisplayView() override { log->debug(DESTRUCTOR, "G4DisplayView"); }
45
46private:
47 // --- Member Widgets (Pointers managed by Qt parenting) ---
48
50 QLineEdit* field_npoints;
51
53 GQTToggleButtonWidget* buttons_set1;
54
56 QSlider *cameraTheta;
58 QSlider *cameraPhi;
59
61 QSlider *lightTheta;
63 QSlider *lightPhi;
64
66 QLineEdit *sliceXEdit;
68 QLineEdit *sliceYEdit;
70 QLineEdit *sliceZEdit;
71
73 QCheckBox *sliceXActi;
75 QCheckBox *sliceYActi;
77 QCheckBox *sliceZActi;
78
80 QCheckBox *sliceXInve;
82 QCheckBox *sliceYInve;
84 QCheckBox *sliceZInve;
85
87 QRadioButton *sliceSectn;
89 QRadioButton *sliceUnion;
90
91 // --- Member Data ---
92
94 int field_NPOINTS = 5;
95
101 std::shared_ptr<GLogger> log;
102
103private slots:
109 void changeCameraDirection();
110
116 void changeLightDirection();
117
125 void slice();
126
132 void clearSlices();
133
141 void apply_buttons_set1(int index);
142
150 void field_precision_changed();
151};
152
A QWidget tab providing controls for Geant4 camera, lighting, slicing, and view styles.
G4DisplayView(const std::shared_ptr< GOptions > &gopts, std::shared_ptr< GLogger > logger, QWidget *parent=nullptr)
Constructs the G4DisplayView widget.
~G4DisplayView() override
Destructor. Logs the destruction event using the provided logger. Qt's parent-child mechanism handles...