arm板debian系统,QT加载外部qss文件,qss失效不起作用。【已解决】

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/leoeitail/article/details/62889685

这两天需要在arm开发板上做一个界面,arm开发板是debian系统,我先在ubuntu虚拟机里面做的。

    QFile styleSheet(":/qss/myqss.qss");
    if (!styleSheet.open(QIODevice::ReadOnly))
    {
        QMessageBox::about(NULL, "warning", "Open qss failed");
    }

    qApp->setStyleSheet(styleSheet.readAll());
    styleSheet.close();

使用上述代码,一切OK,能够正常运行显示。但是我将它移植到arm板上,qss样式就显示不出来了。我在网上百度了好多,没有头绪,后来我就打印出qss样式看看加载的到底是什么?


如图所示,打印出的qss样式之前多了三个乱码,可能是这个原因。
于是我将代码改成了,如下,将前三个乱码截掉,再次在arm板上运行,样式就出来了。
这里注意:乱码有几个就截掉几个,千万不要漏一个两个,我刚开始就是截掉1个乱码,还剩下两个乱码,倒是qss一直不成功。

    QFile styleSheet(":/qss/myqss.qss");
    if (!styleSheet.open(QIODevice::ReadOnly))
    {
        QMessageBox::about(NULL, "warning", "Open qss failed");
    }

    QString readAllstr = styleSheet.readAll();
    readAllstr = readAllstr.right(readAllstr.length() - 3);
    qApp->setStyleSheet(readAllstr);
    //qApp->setStyleSheet(styleSheet.readAll());
    styleSheet.close();

总结:
     * arm板上到debian系统,在读取qss文件到时候,内容前会多出三个乱码字符,必须删除,否则,qss显示不正常
     * 虚拟机ubuntu系统,读取到内容之前有一个乱麻字符,不删除没有关系,可正常显示


猜你喜欢

转载自blog.csdn.net/leoeitail/article/details/62889685