Есть у QLabel есть одна особенность. Её минимальный размер определяется текстом, который в неё записан. Это приводит к тому что длинный текст принудительно увеличивает ширину интерфейса.
В большинстве случаев это выглядит плохо.
Как с этим бороться?
🔸 Обрезать текст заранее, задав лимит по длине строки. В этом случае мы теряем часть визуальной информации. Не всегда угадаешь нужный размер. В разных OS шрифт используется разный.
🔸 Делать перенос строки. Тогда мы получим изменение размера в другую сторону, что тоже поломает интерфейс.
🔸 Переопределить paintEvent() и сделать кастомный рендеринг текста. Можно, но слишком сложно для такой задачи.
Проще всего обрезать текст под текущий размер виджета используя класс QFontMetrics.
Он имеет готовый метод elidedText(), который просто вызываем по событию resizeEvent.
Я также добавил установку ToolTip чтобы всегда можно было увидеть полный текст при наведении курсора.
🌎 Код здесь
#qt#source
今天分享一首短一点,“轻松”一点的作品,6 Variations in F major on an Original Theme, Op.34. 这首和Op.35 Eroica variation几乎同时创作,二者同时发表,都很创新,贝多芬在写给出版商的心里这么写道:“As a rule I only hear of it from others when I have new ideas, since I never know it myself; but this time—I myself can assure you that in both works the style is quite new for me."
这首variation的创新之处是每一个variation都在不同的key上,并且成三度下降关系(除了最后一首),分别为:F major (theme) -> D major (Var I) -> Bb major (Var II) -> G major (Var III) -> Eb major (Var IV)-> C minor (Var V,这个variation是一个funeral march,很容易让人联想到Eroica Symphony的funeral march) -> F major (Var VI)。
#Beethoven#Beethember#piano#variations
https://www.youtube.com/watch?v=uRj5UtuxfPs&feature=youtu.be