Russian Qt Forum
Мая 07, 2025, 22:01 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: как картинку поместить на всю кнопку  (Прочитано 17967 раз)
slava_d200
Гость
« : Декабря 21, 2011, 02:08 »

люди помоги.
как сделать так чтобы картинка которая я размещаю накнопке занимала
все пространство кнопки
пытаюсь сделать так - ничего не получается

class MyButtonBitmap : public QPushButton
{
    Q_OBJECT
public:
    explicit MyButtonBitmap(QWidget *parent = 0){
    };
protected:
     virtual void resizeEvent(QResizeEvent *event)
    {
        QPixmap pix;
        pix.load(":users");
        pix.size().scale(event->size(),Qt::KeepAspectRatio);
        setIcon(pix);
        setIconSize(pix.size());
    }
};
Записан
popper
Гость
« Ответ #1 : Декабря 21, 2011, 09:47 »

Может так:
Код:
QBrush brush;
brush.setTexture(myPixmap);
QPalette palette ( myPushButton.palette() );
palette.setBrush(QPalette::Window, brush);
myPushButton.setPalette(palette);
Записан
lighting
Гость
« Ответ #2 : Декабря 21, 2011, 10:18 »

setStyleSheet("border-image: url(:/имя_картинки.тип) stretch;");
Записан
slava_d200
Гость
« Ответ #3 : Декабря 21, 2011, 21:57 »

по решению: popper  - не прокатило кнопка заполняется множеством картинок.
т.е если картинка по размеру маленькая то на кнопки в качестве фона будет их много.
    
по решени: lighting - картинка увеличилась по размеру  кнопки. в принципе вопрос решило
но теперь видно только эту картинку и не скажешь что эта кнопка.


спасибо за подсказки!!!
Записан
popper
Гость
« Ответ #4 : Декабря 21, 2011, 22:54 »

картинку можно сначала растянуть, вызвав
Код:
QPixmap::scaled(...)
Записан
iroln
Гость
« Ответ #5 : Декабря 21, 2011, 23:00 »

А использовать QToolButton вместо QPushButton не прокатит? Улыбающийся

Записан
slava_d200
Гость
« Ответ #6 : Декабря 21, 2011, 23:07 »

QToolButton прокатил тока если картинка большая.
т.е. если кнопку делать меньше размера картинки картинка тоже сжимается.
если кнопку расширять то картинка тоже расширяется.
но как тока размер кнопки превышает размер картинки картинка перестает увеличиватся
Записан
slava_d200
Гость
« Ответ #7 : Декабря 21, 2011, 23:08 »

пробывал ничего не получается
картинку можно сначала растянуть, вызвав
Код:
QPixmap::scaled(...)
Записан
iroln
Гость
« Ответ #8 : Декабря 22, 2011, 06:27 »

Можно в resizeEvent вызывать метод setIconSize и устанавливать размер иконки, соответствующий текущему размеру кнопки.
Записан
slava_d200
Гость
« Ответ #9 : Декабря 22, 2011, 09:50 »

Самое первое сообщение посмотрите. Вы это имели ввиду.
Такая конструкция почемуто не катит (не работает)
Можно в resizeEvent вызывать метод setIconSize и устанавливать размер иконки, соответствующий текущему размеру кнопки.
Записан
iroln
Гость
« Ответ #10 : Декабря 22, 2011, 20:40 »

Не знаю, почему у тебя не работает масштабирование иконки. Написал вот такой код, он работает, картинку растягивает на всю кнопку, естественно замыливает, если картинка маленького размера, потому что интерполяция:

Код
Python
class TestButton(QToolButton):
 
   def resizeEvent(self, event):
 
       sz = event.size()
 
       pix = QPixmap(u'2rightarrow-256.png')
       pixx = pix.scaled(sz, Qt.KeepAspectRatio)
 
       self.setIcon(pixx)
       self.setIconSize(sz)
       pass
 
   pass
 
 
« Последнее редактирование: Декабря 22, 2011, 20:42 от iroln » Записан
lighting
Гость
« Ответ #11 : Декабря 23, 2011, 10:07 »

по решени: lighting - картинка увеличилась по размеру  кнопки. в принципе вопрос решило
но теперь видно только эту картинку и не скажешь что эта кнопка.
Так вы помнится и просили чтобы картинка занимала все пространство кнопки. Если это не так то setIcon подходящий вам вариант. Ну а размеры надо менять используя resize и setIconSize, подробнее не скажу т.к. мне ваша задача пока-что не ясна.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.123 секунд. Запросов: 20.