Russian Qt Forum
Июнь 16, 2024, 05:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: как картинку поместить на всю кнопку  (Прочитано 17252 раз)
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.135 секунд. Запросов: 20.