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,打开dialog,有明显的闪烁,但是如果我把dialog中的widget去掉,把dialog的背景色设置为黑色,就没有闪烁了,比如回到主窗口(图2)
点击按钮显示对话框
当点击对话框中的按钮回到主窗口时
最佳答案
我不知道为什么会这样,但我通过添加一行代码解决了它
void Widget::onButtonClick()
{
QDialog 对话框(this);
dialog.setAttribute(Qt::WA_NoSystemBackground);
}
关于linux - Qt应用,linux-arm平台切换页面时出现闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45562463/