1、setStyleSheet问题
–描述:Qt样式表频繁设置导致cpu占用过高。
–原因:主窗口,背景利用setStyleSheet设置,同时重写paintEvent 事件,主窗口有很多不规则按键,每个按键都setMask设置有效区域。按键在按下、松开、选中都会有不同的样式,通过其设置,按键响应过程非常慢。
–解决办法:运用调色板方式。
例如:
mainWidget::mainWidget(QWidget *parent):QWidget(parent),
ui(new Ui::mainWidget)
{
QPixmap pixmap;
QPalette palette;
setWindowFlags(Qt::FramelessWindowHit);
pixmap.load(":/images/res/mainbackground.png");
palette.setBrush(QPalette::Window,QBrush(pixmap));
setPalette(palette);
ui->setupUi(this);
}
2、setEnable(false)问题
–描述:pc qt 环境下通过btn.setEnable(false),按钮文本显示正常,而在arm环境下显示重影。
–原因:在csdn论坛上给的解释是QLabel\QPushButton在禁用态时启用了Light.
–解决办法:重写QProxyStyle::drawItemText,把QPalette::Light的颜色设置为透明。
例如:
vo