gpt4 book ai didi

android - Qt 无法在 Android 模拟器上绘制

转载 作者:太空狗 更新时间:2023-10-29 14:38:53 28 4
gpt4 key购买 nike

我目前正在尝试使用 Qt C++ 创建一个基本的 Android 应用程序,我正在使用 Qt Creator。我想做一个看起来像黑色背景和绿色圆圈的雷达屏幕的设计。

关于Android和Qt 5.11.1的所有安装步骤我都完成了。

我正在为 armeabi-v7a 创建此应用程序,所以我的工具包也是如此。

我编写了使背景变黑的代码,并在其上绘制了 3 个绿色圆圈。我的代码适用于 Desktop Qt 5.11.1 MinGW 32 位套件。输出是这样的:

enter image description here

但是当我更改套件以打开 armeabi-v7a 的 Android Emulator 时,会发生这种情况:

enter image description here

现在有些事情我不太清楚。我的背景已更改为黑色,但看不到任何圆圈。我知道我的背景 isi 发生了变化,因为如果我不使用我编写的将背景更改为黑色的函数,Windows 工具包中就会发生这种情况:

enter image description here

这发生在 ARM 套件中:

enter image description here

我绘制椭圆的 paintEvent 函数是这样的:

void MainWindow::paintEvent(QPaintEvent *event) {
QPainter painterObj(this);
painterObj.setPen(QPen(Qt::green, 2, Qt::SolidLine, Qt::RoundCap));

painterObj.save();
painterObj.drawEllipse(0, 0, 318, 512);
painterObj.restore();

painterObj.save();
painterObj.drawEllipse(53, 86, 212, 340);
painterObj.restore();

painterObj.save();
painterObj.drawEllipse(106, 172, 106, 168);
painterObj.restore();
}

我的背景颜色更改器(mutator)函数是这样的,我在 ui->setupUi(this); 之后调用它。 :

void MainWindow::setBackGroundColorToBlack() {
QPalette pal = palette();

// set black background
pal.setColor(QPalette::Background, Qt::black);
this->setAutoFillBackground(true);
this->setPalette(pal);
}

这些函数在这样的头文件中受到保护:

protected:
void paintEvent(QPaintEvent *e);
void setBackGroundColorToBlack();

谁能帮帮我?我被这个问题困住了,在互联网上找不到任何指南或答案。

提前致谢。

最佳答案

我刚刚像这样更改了 paintEvent:

void MainWindow::paintEvent(QPaintEvent *event) {
setUpdatesEnabled(false);
QPainter painterObj;
painterObj.begin(this);
painterObj.setPen(QPen(Qt::green, 2, Qt::SolidLine, Qt::RoundCap));
painterObj.drawEllipse(0, 0, 318, 456);
painterObj.drawEllipse(53, 76, 212, 304);

painterObj.drawEllipse(106, 152, 106, 152);

painterObj.end();

并在 setBackGroundToBlack() 函数的末尾添加了一个 update(); 语句。现在它也在模拟器上绘图。

关于android - Qt 无法在 Android 模拟器上绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51422880/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com