LightAndElectricity 2022-03-11 12:52 采纳率: 33.3%
浏览 414
已结题

QT的UI界面到Android显示异常什么原因?

QT的UI界面到安卓上会全部乱掉,显示异常,样式完全不一样,显示不全等等
Win10,QT5.11.1,JDK8,sdk:r24.4.1,ndk:r14b
希望UI界面在安卓正常显示
QT:

img

安卓:

img

  • 写回答

9条回答 默认 最新

  • 关注

    应该是平台的差异性导致的问题,你的控件没有设置样式,界面在显示的时候会引用系统的默认样式。从而导致显示效果的差异。
    参考解决方法:
    在写代码的时候,用css或者setstylesheet()设置一下控件的样式,避免使用系统自带的样式,字体最好也设置一下,这样能保证在不同的平台下,界面效果是一致的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 封尘绝念丶 2022-03-11 15:34
    关注

    用css修改一下你控件的样式再试试看

    评论
  • 不会写代码的猴子 Android领域优质创作者 2022-03-11 13:50
    关注

    你的UI用什么写的?

    评论
  • 编程小鱼酱 博客专家认证 2022-03-11 14:25
    关注

    在 Qt 4.4 中引入的外星widget是窗口系统未知的widget。 它们没有与之关联的原生窗口句柄。 此功能显着加快了小部件的绘制、调整大小和消除闪烁。
    如果您需要原生窗口的旧行为,您可以选择以下选项之一:

    1.在您的环境中使用 QT_USE_NATIVE_WINDOWS=1。
    2.在您的应用程序上设置 Qt::AA_NativeWindows 属性。 所有widget都将是原生widget。
    3.在widget上设置 Qt::WA_NativeWindow 属性:widget本身及其所有祖先都将变为原生(除非设置了 Qt::WA_DontCreateNativeAncestors)。
    4.调用 QWidget::winId 来强制一个原生窗口(这意味着 3)。
    5.设置 Qt::WA_PaintOnScreen 属性以强制使用本机窗口(这意味着 3)。

    评论
  • ꧁白杨树下꧂ 2022-03-13 21:50
    关注

    建议使用qml编写

    评论
  • 金士顿 2022-03-14 13:12
    关注

    qml

    评论
  • chx_125 2022-03-14 19:20
    关注

    要用Qt Quick开发android应用,否则界面会出现很多问题。
    相关代码如下:
    #include "widget.h"
    #include "ui_widget.h"
    #include "QPushButton"
    #include <QtWidgets/QPushButton>
    Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
    {
    ui->setupUi(this);
    QPushButton *m_Btn = new QPushButton(this);
    m_Btn->setText("一个按钮");
    m_Btn->setStyleSheet("background-color:blue");
    m_Btn->show();
    }

    Widget::~Widget()
    {
    delete ui;
    }

    评论
  • ilmss 2022-03-14 20:59
    关注

      在main函数开头增加一段代码:

    
    if(QT_VERSION>=QT_VERSION_CHECK(5,6,0))
            QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
    
    
    int main(int argc, char *argv[])
    {
        if(QT_VERSION>=QT_VERSION_CHECK(5,6,0))
            QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
        QApplication a(argc, argv);
        MainWindow w;
        w.show();
    
        return a.exec();
    }
    
    
    评论
  • 有问必答小助手 2022-03-17 10:46
    关注
    您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
    PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632
    评论
查看更多回答(8条)

报告相同问题?

问题事件

  • 系统已结题 3月25日
  • 已采纳回答 3月17日
  • 赞助了问题酬金20元 3月11日
  • 创建了问题 3月11日

悬赏问题

  • ¥15 很简单的c#代码补全
  • ¥15 按要求用C语言编出程序,要求标明注释,数据可以不用打出来,只要求有程序就行,没办法了在等待中,有没有人帮个忙,明天就要求要
  • ¥15 复杂表达式求值程序里的函数优先级问题
  • ¥15 求密码学的客成社记ji着用
  • ¥35 POI导入树状结构excle
  • ¥15 初学者c语言题目解答
  • ¥15 div editable中的光标问题
  • ¥15 mysql报错1415Not allowed to return a result set from a trigger 不知如何修改
  • ¥60 Python输出Excel数据整理,算法较为复杂
  • ¥15 回答几个问题 关于数据库