Introduce TextoutputLabel: Resizes automatically with text
Šī revīzija ir iekļauta:
vecāks
7c15d7b145
revīzija
6d78dbe92e
@ -12,6 +12,7 @@ HEADERS += calculationengine.h \
|
|||||||
entrypushbutton.h \
|
entrypushbutton.h \
|
||||||
settingsprovider.h \
|
settingsprovider.h \
|
||||||
singleinstanceserver.h \
|
singleinstanceserver.h \
|
||||||
|
textoutputlabel.h \
|
||||||
window.h
|
window.h
|
||||||
SOURCES += calculationengine.cpp \
|
SOURCES += calculationengine.cpp \
|
||||||
entryprovider.cpp \
|
entryprovider.cpp \
|
||||||
@ -19,6 +20,7 @@ SOURCES += calculationengine.cpp \
|
|||||||
main.cpp \
|
main.cpp \
|
||||||
settingsprovider.cpp \
|
settingsprovider.cpp \
|
||||||
singleinstanceserver.cpp \
|
singleinstanceserver.cpp \
|
||||||
|
textoutputlabel.cpp \
|
||||||
window.cpp
|
window.cpp
|
||||||
QT += widgets sql network
|
QT += widgets sql network
|
||||||
QT_CONFIG -= no-pkg-config
|
QT_CONFIG -= no-pkg-config
|
||||||
|
37
textoutputlabel.cpp
Parasts fails
37
textoutputlabel.cpp
Parasts fails
@ -0,0 +1,37 @@
|
|||||||
|
#include "textoutputlabel.h"
|
||||||
|
|
||||||
|
TextoutputLabel::TextoutputLabel()
|
||||||
|
{
|
||||||
|
QFont font;
|
||||||
|
font.setPointSize(48);
|
||||||
|
font.setBold(true);
|
||||||
|
this->setFont(font);
|
||||||
|
this->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
||||||
|
this->setAlignment(Qt::AlignCenter);
|
||||||
|
this->setContextMenuPolicy(Qt::ContextMenuPolicy::CustomContextMenu);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TextoutputLabel::setText(const QString &text)
|
||||||
|
{
|
||||||
|
QLabel::setText(text);
|
||||||
|
QFont currentFont = this->font();
|
||||||
|
int calculatedPointSize = currentFont.pointSize();
|
||||||
|
QFontMetrics fm(currentFont);
|
||||||
|
int contentWidth = this->contentsRect().width() - this->margin();
|
||||||
|
while(calculatedPointSize < 48 && fm.boundingRect(this->text()).width() < contentWidth)
|
||||||
|
{
|
||||||
|
calculatedPointSize += 1;
|
||||||
|
currentFont.setPointSize(calculatedPointSize);
|
||||||
|
fm = QFontMetrics(currentFont);
|
||||||
|
}
|
||||||
|
while(fm.boundingRect(this->text()).width() >= contentWidth)
|
||||||
|
{
|
||||||
|
calculatedPointSize -= 1;
|
||||||
|
currentFont.setPointSize(calculatedPointSize);
|
||||||
|
fm = QFontMetrics(currentFont);
|
||||||
|
}
|
||||||
|
this->setFont(currentFont);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
14
textoutputlabel.h
Parasts fails
14
textoutputlabel.h
Parasts fails
@ -0,0 +1,14 @@
|
|||||||
|
#ifndef TEXTOUTPUTLABEL_H
|
||||||
|
#define TEXTOUTPUTLABEL_H
|
||||||
|
#include <QLabel>
|
||||||
|
|
||||||
|
class TextoutputLabel : public QLabel
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
TextoutputLabel();
|
||||||
|
virtual void setText(const QString &text);
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // TEXTOUTPUTLABEL_H
|
Notiek ielāde…
Atsaukties uz šo jaunā problēmā
Block a user