Qt部署在arm-linux上切换页面出现明显的闪烁现象

LeftDead 2017-08-09 02:05:59
QT版本是4.8.6,在本地linux的电脑上运行没有问题,但是经过交叉编译部署到远端arm-linux上的产品机器上在切换页面的时候会出现明显的闪烁,
做了个小的测试代码也是这样:
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();
}

这是在主页面点击按钮进入dialog,出现闪屏现象,经测试如果将要切换的页面中有QWidge对象就会出现闪屏,图二因为主页里面没有QWidget对象,切换的时候是正常的.




...全文
609 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
LeftDead 2017-08-10
  • 打赏
  • 举报
回复
引用 4 楼 n7zj0x8 的回复:
只有不进行大面积的刷新,尽量不使用dialog这种,还有楼上说的颜色上的处理. 如果不是驱动问题的话,可以考虑换一个好点的板子,或者部分硬件呀
硬件是没法换的,只能在软件上找方法,驱动什么的不敢乱装= =
大卫无限 2017-08-10
  • 打赏
  • 举报
回复
只有不进行大面积的刷新,尽量不使用dialog这种,还有楼上说的颜色上的处理. 如果不是驱动问题的话,可以考虑换一个好点的板子,或者部分硬件呀
LeftDead 2017-08-10
  • 打赏
  • 举报
回复
将QDialog的背景用QSS改成纯黑色可以从视觉上看不出有闪屏,不过实际工程里面界面太多,而且还会增加新的界面,单纯改背景色并不合适
LeftDead 2017-08-10
  • 打赏
  • 举报
回复
引用 1 楼 n7zj0x8 的回复:
你都说了是armlinux,明显它的处理能力不强,显示支持也不强,
而且你还在onButtonClick里面去new控件,你就不能先new出来,再show么.


按你说的先new 在show,但是闪屏现象没有改善.在处理能力和显示支持不强的情况下有没有什么办法能消除这个闪屏呢,因为这是个绕不过去的坎啊
大卫无限 2017-08-10
  • 打赏
  • 举报
回复
你都说了是armlinux,明显它的处理能力不强,显示支持也不强, 而且你还在onButtonClick里面去new控件,你就不能先new出来,再show么.

16,212

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧