Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 24.06.2015, 05:02   #1
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию QFrame c QLabel минимальный размер + размер по содержимому

Здравствуйте.

У меня есть QFrame, который выполнен в горизонтальной компоновке, в нем есть содержимое которое включает в себя QLabel.

Мне необходимо сделать, чтоб QLabel не мог уменьшаться меньше определенного минимального размера или содержимого, если оно превышает этот минимальный размер.

Устанавливая минимальный размер QLabel с помощь setMinimumSize() игнорируется содержимое QLabel, и минимальным размером является установленный.

Буду очень благодарен, если кто-то сможет помочь.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 29.06.2015, 04:44   #2
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Решил проблему создав свой класс, который унаследовал от QLabel и переопределил в нем функцию setText().

myqlabel.h
Код:
#ifndef MYQLABEL_H
#define MYQLABEL_H
 
 
#include <QLabel>
 
class MyQLabel : public QLabel
{
    Q_OBJECT
public:
    explicit MyQLabel(QWidget *parent = 0);
    ~MyQLabel();
 
public slots:
    void setText(const QString &newText);
};
 
#endif // MYQLABEL_H
myqlabel.cpp
Код:
#include "myqlabel.h"
 
MyQLabel::MyQLabel(QWidget *parent) : QLabel(parent)
{
 
}
 
MyQLabel::~MyQLabel()
{
 
}
 
void MyQLabel::setText(const QString &newText){
    QLabel::setText(newText);
 
    // width
    if(this->minimumSizeHint().width()<200){
        setMinimumWidth(200);
    }else{
        setMinimumWidth(0);
    }
 
    // height
    if(this->minimumSizeHint().height()<100){
        setMinimumHeight(100);
    }else{
        setMinimumHeight(0);
    }
}
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подогнать размер flash картинки под размер компонента shockwave flash kestugar Мультимедиа в Delphi 3 15.08.2014 10:03
размер диска Deadnight Помощь студентам 0 16.04.2012 21:29
Microsoft Visual C++ и минимальный размер файла ImmortalAlexSan Общие вопросы C/C++ 0 07.05.2011 13:48
Размер окна t3ns0r Общие вопросы C/C++ 2 29.11.2008 21:22
Размер Image изменяется на размер картинки, а сама она рисуется на области первой картинки RPGer Мультимедиа в Delphi 6 20.10.2008 18:54


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840