[英]How to set QLabel size according to the size of its text?
我希望QLabel占用文本的大小。 關注無效。 默認情況下,它使QLabel變得很大。
。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
被聲明為類成員。
我嘗試了此鏈接中的建議: 動態文本大小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());
這導致標簽對於文本而言太小。 部分文字被隱藏。
以下為我工作:
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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.