首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

真心求教,button 设置图像有关问题

2012-02-22 
真心求教,button 设置图像问题C/C++ codevoid Icon_memory::on_pushButton_released(){QImage * image n

真心求教,button 设置图像问题

C/C++ code
void Icon_memory::on_pushButton_released(){            QImage * image = new QImage(tr("Sunset.jpg"));        QSize s = ui.pushButton->size();//the button you would to set the back;        QImage * i2 =new QImage(image->scaled(s));//adapt the size of button;        QIcon iocn_ = QIcon(QPixmap::fromImage(*i2));    1)    ui.pushButton->setIcon(iocn_);        ui.pushButton->setIconSize(s);                delete i2;        delete image;        }void Icon_memory::on_pushButton_pressed(){        QImage * image = new QImage(tr("Winter.jpg"));    QSize s = ui.pushButton->size();//the button you would to set the back;    QImage * i2 =new QImage(image->scaled(s));//adapt the size of button;    QIcon iocn_ = QIcon(QPixmap::fromImage(*i2));1)    ui.pushButton->setIcon(iocn_);    ui.pushButton->setIconSize(s);        delete i2;    delete image;    }

上述代码我删掉 1)在任务管理器上面看 内测不会增加,加上1) 任务管理器 上每次的button被按下和释放 内测都要增加一些。 这个问题1个月了 哪位大神出来99 我啊 我是真心求教啊 为啥子没人理啊???

有人提供解决的思路和办法 我马上加分 大神出来99我吧

[解决办法]
为什么卜用QPalette呢

例如:
p_button->setAutoFillBackground(true);
QPixmap pixmap(p_button.backGraph);【p_button.backGraph背景图片路径】
QPalette palette;
palette.setBrush(p_button->backgroundRole(),QBrush(pixmap));
p_button->setPalette(palette);

【 我也是初学者 卜知道你想要的是怎样的效果 只是说啦一下个人见解 呵呵.. 希望可以帮到你..】

[解决办法]
呃 既然用Qt了 慢慢可以了解一下stylesheet的 感觉qss还是很好用的 楼主的意思是要让按钮点击时和释放时显示不同的图片

ui->pushButton->setStyleSheet(" \
QPushButton{\
border-image:url(Sunset.jpg);\
}\
QPushButton:pressed {\
border-image:url(Winter.jpg);\
}");


[解决办法]
探讨

呃 既然用Qt了 慢慢可以了解一下stylesheet的 感觉qss还是很好用的 楼主的意思是要让按钮点击时和释放时显示不同的图片

ui->pushButton->setStyleSheet(" \
QPushButton{\
bord……

[解决办法]
border-image 就是自适应大小的, background-image不能自适应大小
[解决办法]
p_button->setStyleSheet(("border-image:url(图片路径);");
[解决办法]
>>>>非常感谢楼上提供的帮助,我想问下 qassistant 还有没有系统介绍QSS的书籍?


《C++ GUI Programming with Qt 4》书中有一点介绍QSS的,但是不多,建议楼主看一些CSS的书,个人感觉两个东西还是挺像的
[解决办法]
探讨

引用:

border-image 就是自适应大小的, background-image不能自适应大小

恩可以起作用,但我现在还是想知道我上面为什么内存漏了。
现在这个button有二种方法来做,一个是用qss 一个是重新封装QLabel 响应 鼠标的event

非常感谢楼上提供的帮助,我想问下 qassistant 还有没有系统介绍QSS的书……

[解决办法]
虽然 delete i2; 也 delete image;了,但是icon的确作为一个属性被你加在button上了,看setIcon源码是最能解决你问题的办法了。

热点排行