【问题标题】:Qt QQuickView visual bug / flickering on resizeQt QQuickView 视觉错误/调整大小时闪烁
【发布时间】:2015-02-19 16:08:15
【问题描述】:

我正在尝试将一些 QML/Qt Quick 2 元素集成到 Qt 5.4 c++ 应用程序中。到目前为止,我已经能够在 Qt 窗口中完全按照我的意愿显示我的 QML 元素,但是我在随机时间遇到了一些闪烁和类似的视觉错误,尤其是在调整窗口大小或 QML 元素改变颜色时.当我的 QML 代码自行运行时,我没有遇到这样的问题。这个问题有什么明显的解决办法吗?

该错误的确切性质是“topbar”元素堆叠显示在“menubar”元素顶部的时间只有几分之一秒。如果调整窗口大小或 QML 视图中的元素改变颜色,这种情况会更频繁地发生。

main.cpp:

QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();

主窗口.cpp

QStackedWidget * mainStackWidget = new QStackedWidget();

//Init of QML TopBar widget
QQuickView *topBarView= new QQuickView();
topBarView->setResizeMode(QQuickView::SizeRootObjectToView);
topBarView->setSource(QUrl("qrc:/TopBar.qml"));
QWidget *topBarWidget = QWidget::createWindowContainer(topBarView);
topBarWidget->setMinimumSize(1024, 150);

//Init of QML menu widget
QQuickView *menuView = new QQuickView();
menuView->setResizeMode(QQuickView::SizeRootObjectToView);
menuView->setSource(QUrl("qrc:/SideBar.qml"));
QWidget *menuWidget = QWidget::createWindowContainer(menuView);
menuWidget->setMinimumSize(1024, 500);

//Setting the layout
ui->verticalLayout->addWidget(topBarWidget);
mainStackWidget->addWidget(menuWidget);
ui->verticalLayout->addWidget(mainStackWidget);
centralWidget()->setLayout(ui->verticalLayout);

【问题讨论】:

    标签: c++ qt qml


    【解决方案1】:

    拆开我自己的程序后,很明显顶部栏 QML 元素中的“Progressbar”元素导致了视觉错误。设置更多的进度条设置,例如下面的示例,几乎解决了所有的故障视觉效果,尽管我真的不知道为什么。

    ProgressBar {
        value: slider.value
        style: ProgressBarStyle {
            background: Rectangle {
                radius: 2
                color: "lightgray"
                border.color: "gray"
                border.width: 1
                implicitWidth: 200
                implicitHeight: 24
            }
            progress: Rectangle {
                color: "lightsteelblue"
                border.color: "steelblue"
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-03-19
      • 2022-10-13
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多