BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
gui2::FancyTab Class Reference
Inheritance diagram for gui2::FancyTab:
[legend]
Collaboration diagram for gui2::FancyTab:
[legend]

Signals

void clicked ()
 

Public Member Functions

 FancyTab (const QString &title, QWidget *parent=nullptr)
 
void setSelected (bool value)
 

Protected Member Functions

void enterEvent (QEvent *) override
 
void leaveEvent (QEvent *) override
 
void mousePressEvent (QMouseEvent *event) override
 
void paintEvent (QPaintEvent *) override
 

Private Attributes

bool m_isSelected {false}
 
QLabel * m_label {nullptr}
 
QColor m_widgetColor
 

Detailed Description

Definition at line 27 of file fancytab.h.

Constructor & Destructor Documentation

◆ FancyTab()

gui2::FancyTab::FancyTab ( const QString &  title,
QWidget *  parent = nullptr 
)

Definition at line 32 of file fancytab.cpp.

33  : QWidget(parent), m_label(new QLabel(title))
34 {
36  setFixedHeight(ModelView::Utils::HeightOfLetterM() * 2.5);
37 
38  auto layout = new QHBoxLayout(this);
39  layout->setContentsMargins(0, 0, 0, 0);
40 
41  layout->addWidget(m_label, 0, Qt::AlignCenter);
42  setMouseTracking(true);
43 }
QLabel * m_label
Definition: fancytab.h:45
MVVM_VIEW_EXPORT int HeightOfLetterM()
Returns height of the letter 'M' deduced from current font metrics.
MVVM_VIEW_EXPORT void ScaleLabelFont(QLabel *label, double scale)
Set label's font size to system font size scaled by given factor.

References ModelView::Utils::HeightOfLetterM(), m_label, and ModelView::Utils::ScaleLabelFont().

Here is the call graph for this function:

Member Function Documentation

◆ clicked

void gui2::FancyTab::clicked ( )
signal

◆ enterEvent()

void gui2::FancyTab::enterEvent ( QEvent *  )
overrideprotected

Definition at line 70 of file fancytab.cpp.

71 {
72  if (isEnabled())
73  m_widgetColor = QColor(Qt::lightGray);
74  update();
75 }
QColor m_widgetColor
Definition: fancytab.h:47

References m_widgetColor.

◆ leaveEvent()

void gui2::FancyTab::leaveEvent ( QEvent *  )
overrideprotected

Definition at line 77 of file fancytab.cpp.

78 {
79  if (isEnabled())
80  m_widgetColor = defaultColor();
81  update();
82 }

References m_widgetColor.

◆ mousePressEvent()

void gui2::FancyTab::mousePressEvent ( QMouseEvent *  event)
overrideprotected

Definition at line 64 of file fancytab.cpp.

65 {
66  if (isEnabled() && event->button() == Qt::LeftButton)
67  clicked();
68 }

References clicked().

◆ paintEvent()

void gui2::FancyTab::paintEvent ( QPaintEvent *  )
overrideprotected

Definition at line 51 of file fancytab.cpp.

52 {
53  QPainter painter(this);
54 
55  if (m_widgetColor.isValid())
56  painter.fillRect(0, 0, size().width(), size().height(), m_widgetColor);
57 
58  if (m_isSelected && isEnabled())
59  painter.fillRect(
60  QRectF(QPointF(0, size().height() - 2), QPointF(size().width(), size().height())),
61  QColor("#0d4283"));
62 }
bool m_isSelected
Definition: fancytab.h:46

References m_isSelected, and m_widgetColor.

◆ setSelected()

void gui2::FancyTab::setSelected ( bool  value)

Definition at line 45 of file fancytab.cpp.

46 {
47  m_isSelected = value;
48  update();
49 }

References m_isSelected.

Member Data Documentation

◆ m_isSelected

bool gui2::FancyTab::m_isSelected {false}
private

Definition at line 46 of file fancytab.h.

Referenced by paintEvent(), and setSelected().

◆ m_label

QLabel* gui2::FancyTab::m_label {nullptr}
private

Definition at line 45 of file fancytab.h.

Referenced by FancyTab().

◆ m_widgetColor

QColor gui2::FancyTab::m_widgetColor
private

Definition at line 47 of file fancytab.h.

Referenced by enterEvent(), leaveEvent(), and paintEvent().


The documentation for this class was generated from the following files: