qt widget 开发一些常见问题

本文主要讨论了Qt Widget开发中遇到的一些问题,包括setStyleSheet性能问题、setEnable(false)显示异常、多线程访问数据库、DISTINCT关键字的使用、模糊搜索功能实现、字符编码转换以及C++向QML传递参数的方法,并提供了相应的解决方案和代码示例。
摘要由CSDN通过智能技术生成

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值