【问题标题】:Qt application,there flicker appears when switch page on linux-arm platformQt应用,在linux-arm平台切换页面出现闪烁
【发布时间】:2017-08-08 07:54:53
【问题描述】:

Qt 版本:4.8.6

应用程序通过交叉编译器部署在arm-linux 上。在我的电脑上,一切正常。此问题出现在arm-linux 平台上。如果即将到来的页面包含QWidget 对象,则会出现此问题。

Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget)
{ 
    ui->setupUi(this); 
    QDesktopWidget deskWidget; 
    this->resize(deskWidget.availableGeometry().size()); 
    //main page 
    this->setPalette(QPalette(QColor(Qt::black)));
    QPushButton* button = new QPushButton("to next",this);
    connect(button,SIGNAL(clicked()),this,SLOT(onButtonClick())); 
}

void Widget::onButtonClick() 
{ 
    QDialog dialog(this); 
    dialog.resize(size());
    QWidget* topW = new QWidget(&dialog);
    QPushButton* button1 = new QPushButton("back",&dialog);
    connect(button1,SIGNAL(clicked()),&dialog,SLOT(accept()));
    QVBoxLayout* lw = new QVBoxLayout; 
    lw->addWidget(topW); 
    lw->addWidget(button1);
    dialog.setLayout(lw); 
    dialog.exec(); 
}

图1,打开对话框,有明显的闪烁,但是如果我删除对话框中的小部件,只需将对话框的背景颜色设置为黑色,这是没有闪烁的,例如回到主窗口(图2)

当点击按钮显示对话框时

当点击对话框上的按钮返回主窗口时

【问题讨论】:

  • 什么问题?你说有错误,但你甚至不告诉我们它是什么!
  • 对不起,我不知道如何用英语描述这个问题,可能适合打电话闪烁
  • 发生了什么?你可以张贴图片吗?你的代码的一小部分不会帮助我帮助你......
  • 我稍后会上传一个gif
  • @Xatyrian 请你看一下,我已经上传了 gif。

标签: linux qt embedded-linux


【解决方案1】:

我不知道为什么会这样,但我通过添加一行代码解决了它 void Widget::onButtonClick() { QDialog dialog(this); dialog.setAttribute(Qt::WA_NoSystemBackground); }

【讨论】:

    猜你喜欢
    • 2016-06-10
    • 2022-11-11
    • 2014-09-29
    • 2019-05-13
    • 2013-07-21
    • 2020-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多