本文整理汇总了C++中QQuickItem::hasFocus方法的典型用法代码示例。如果您正苦于以下问题:C++ QQuickItem::hasFocus方法的具体用法?C++ QQuickItem::hasFocus怎么用?C++ QQuickItem::hasFocus使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QQuickItem
的用法示例。
在下文中一共展示了QQuickItem::hasFocus方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: defaultFocus
void tst_applicationwindow::defaultFocus()
{
QQmlEngine engine;
QQmlComponent component(&engine);
component.loadUrl(testFileUrl("defaultFocus.qml"));
QObject* created = component.create();
QScopedPointer<QObject> cleanup(created);
Q_UNUSED(cleanup);
QVERIFY(created);
QQuickWindow* window = qobject_cast<QQuickWindow*>(created);
QVERIFY(window);
window->show();
window->requestActivate();
QVERIFY(QTest::qWaitForWindowActive(window));
QVERIFY(QGuiApplication::focusWindow() == window);
QQuickItem* contentItem = window->contentItem();
QVERIFY(contentItem);
QVERIFY(contentItem->hasActiveFocus());
// A single item in an ApplicationWindow with focus: true should receive focus.
QQuickItem* item = findItem<QQuickItem>(window->contentItem(), "item");
QVERIFY(item);
QVERIFY(item->hasFocus());
QVERIFY(item->hasActiveFocus());
}
示例2: canvasFocus
void tst_qquickfocusscope::canvasFocus()
{
QQuickView *view = new QQuickView;
view->setSource(testFileUrl("canvasFocus.qml"));
QQuickView alternateView;
QQuickItem *rootObject = view->rootObject();
QVERIFY(rootObject);
QQuickItem *rootItem = view->contentItem();
QQuickItem *scope1 = findItem<QQuickItem>(rootObject, QLatin1String("scope1"));
QQuickItem *item1 = findItem<QQuickItem>(rootObject, QLatin1String("item1"));
QQuickItem *scope2 = findItem<QQuickItem>(rootObject, QLatin1String("scope2"));
QQuickItem *item2 = findItem<QQuickItem>(rootObject, QLatin1String("item2"));
QVERIFY(scope1);
QVERIFY(item1);
QVERIFY(scope2);
QVERIFY(item2);
QSignalSpy rootFocusSpy(rootItem, SIGNAL(focusChanged(bool)));
QSignalSpy scope1FocusSpy(scope1, SIGNAL(focusChanged(bool)));
QSignalSpy item1FocusSpy(item1, SIGNAL(focusChanged(bool)));
QSignalSpy scope2FocusSpy(scope2, SIGNAL(focusChanged(bool)));
QSignalSpy item2FocusSpy(item2, SIGNAL(focusChanged(bool)));
QSignalSpy rootActiveFocusSpy(rootItem, SIGNAL(activeFocusChanged(bool)));
QSignalSpy scope1ActiveFocusSpy(scope1, SIGNAL(activeFocusChanged(bool)));
QSignalSpy item1ActiveFocusSpy(item1, SIGNAL(activeFocusChanged(bool)));
QSignalSpy scope2ActiveFocusSpy(scope2, SIGNAL(activeFocusChanged(bool)));
QSignalSpy item2ActiveFocusSpy(item2, SIGNAL(activeFocusChanged(bool)));
QEXPECT_FAIL("", "QTBUG-22415", Abort);
QCOMPARE(rootItem->hasFocus(), false);
QCOMPARE(rootItem->hasActiveFocus(), false);
QCOMPARE(scope1->hasFocus(), true);
QCOMPARE(scope1->hasActiveFocus(), false);
QCOMPARE(item1->hasFocus(), true);
QCOMPARE(item1->hasActiveFocus(), false);
QCOMPARE(scope2->hasFocus(), false);
QCOMPARE(scope2->hasActiveFocus(), false);
QCOMPARE(item2->hasFocus(), false);
QCOMPARE(item2->hasActiveFocus(), false);
view->show();
view->requestActivate();
QVERIFY(QTest::qWaitForWindowActive(view));
QVERIFY(view == qGuiApp->focusWindow());
// Now the window has focus, active focus given to item1
QCOMPARE(rootItem->hasFocus(), true);
QCOMPARE(rootItem->hasActiveFocus(), true);
QCOMPARE(scope1->hasFocus(), true);
QCOMPARE(scope1->hasActiveFocus(), true);
QCOMPARE(item1->hasFocus(), true);
QCOMPARE(item1->hasActiveFocus(), true);
QCOMPARE(scope2->hasFocus(), false);
QCOMPARE(scope2->hasActiveFocus(), false);
QCOMPARE(item2->hasFocus(), false);
QCOMPARE(item2->hasActiveFocus(), false);
QCOMPARE(rootFocusSpy.count(), 1);
QCOMPARE(rootActiveFocusSpy.count(), 1);
QCOMPARE(scope1FocusSpy.count(), 0);
QCOMPARE(scope1ActiveFocusSpy.count(), 1);
QCOMPARE(item1FocusSpy.count(), 0);
QCOMPARE(item1ActiveFocusSpy.count(), 1);
// view->hide(); // seemingly doesn't remove focus, so have an another view steal it.
alternateView.show();
alternateView.requestActivate();
QVERIFY(QTest::qWaitForWindowActive(&alternateView));
QVERIFY(QGuiApplication::focusWindow() == &alternateView);
QCOMPARE(rootItem->hasFocus(), false);
QCOMPARE(rootItem->hasActiveFocus(), false);
QCOMPARE(scope1->hasFocus(), true);
QCOMPARE(scope1->hasActiveFocus(), false);
QCOMPARE(item1->hasFocus(), true);
QCOMPARE(item1->hasActiveFocus(), false);
QCOMPARE(rootFocusSpy.count(), 2);
QCOMPARE(rootActiveFocusSpy.count(), 2);
QCOMPARE(scope1FocusSpy.count(), 0);
QCOMPARE(scope1ActiveFocusSpy.count(), 2);
QCOMPARE(item1FocusSpy.count(), 0);
QCOMPARE(item1ActiveFocusSpy.count(), 2);
// window does not have focus, so item2 will not get active focus
item2->forceActiveFocus();
QCOMPARE(rootItem->hasFocus(), false);
QCOMPARE(rootItem->hasActiveFocus(), false);
QCOMPARE(scope1->hasFocus(), false);
QCOMPARE(scope1->hasActiveFocus(), false);
QCOMPARE(item1->hasFocus(), true);
QCOMPARE(item1->hasActiveFocus(), false);
//.........这里部分代码省略.........