g4display
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 
27 class G4DisplayView : public QWidget {
28  Q_OBJECT // Macro required for signals, slots, and Qt meta-object features
29 
30 public:
37  G4DisplayView(GOptions* gopts, std::shared_ptr<GLogger> logger, QWidget* parent = nullptr);
38 
44  ~G4DisplayView() override { log->debug(DESTRUCTOR, "G4DisplayView"); }
45 
46 private:
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 
103 private 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.
Definition: g4displayview.h:27
G4DisplayView(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...
Definition: g4displayview.h:44