Reputation: 22906
I want the QLabel to take the size of the text. Following doesn't work. It has made QLabel quite big by default.
.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QLabel>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
private:
QLabel m_QLabel_choose_interval;
};
#endif // MAINWINDOW_H
.cpp
#include "mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
m_QLabel_choose_interval.setParent (this);
m_QLabel_choose_interval.setText ("Choose interval:");
m_QLabel_choose_interval.setFrameStyle (QFrame::Panel | QFrame::Sunken);
m_QLabel_choose_interval.setAlignment (Qt::AlignCenter);
}
m_QLabel_choose_interval
is declared as a class member.
I tried what's suggested in this link: Dynamic text size QLabel
r = m_QLabel_choose_interval.fontMetrics().boundingRect("My text");
m_QLabel_choose_interval.setText ("Choose interval:");
m_QLabel_choose_interval.setFrameStyle (QFrame::Panel | QFrame::Sunken);
m_QLabel_choose_interval.setAlignment (Qt::AlignCenter);
m_QLabel_choose_interval.setFixedWidth (r.width());
m_QLabel_choose_interval.setFixedHeight (r.height());
This resulted in the label being too small for the text. Part of the text was hidden.
Upvotes: 1
Views: 6411
Reputation: 22906
Following worked for me:
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
{
m_QLabel_choose_interval.setParent (this);
m_QLabel_choose_interval.setText ("Choose interval:");
QFont l_QFont_choose_interval ("times", 24);
QFontMetrics l_QFontMetrics_choose_interval (l_QFont_choose_interval);
m_QLabel_choose_interval.setFont (l_QFont_choose_interval);
int pixelsWide = l_QFontMetrics_choose_interval.width(m_QLabel_choose_interval.text ());
int pixelsHigh = l_QFontMetrics_choose_interval.height();
m_QLabel_choose_interval.setFrameStyle (QFrame::Panel | QFrame::Sunken);
m_QLabel_choose_interval.setAlignment (Qt::AlignCenter);
m_QLabel_choose_interval.setFixedWidth (pixelsWide);
m_QLabel_choose_interval.setFixedHeight (pixelsHigh);
}
http://doc.qt.io/qt-5/qfontmetrics.html
Upvotes: 4