本文整理汇总了C++中QQuickItem::hasActiveFocus方法的典型用法代码示例。如果您正苦于以下问题:C++ QQuickItem::hasActiveFocus方法的具体用法?C++ QQuickItem::hasActiveFocus怎么用?C++ QQuickItem::hasActiveFocus使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QQuickItem
的用法示例。
在下文中一共展示了QQuickItem::hasActiveFocus方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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: component
void tst_applicationwindow::activeFocusOnTab2()
{
QQmlEngine engine;
QQmlComponent component(&engine);
component.loadUrl(testFileUrl("activefocusontab.qml"));
QObject* created = component.create();
QScopedPointer<QObject> cleanup(created);
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());
QQuickItem* item = findItem<QQuickItem>(window->contentItem(), "sub2");
QVERIFY(item);
QVERIFY(!item->hasActiveFocus());
// BackTab: contentItem->sub2
QKeyEvent key(QEvent::KeyPress, Qt::Key_Tab, Qt::ShiftModifier, "", false, 1);
QGuiApplication::sendEvent(window, &key);
QVERIFY(key.isAccepted());
item = findItem<QQuickItem>(window->contentItem(), "sub2");
QVERIFY(item);
QVERIFY(item->hasActiveFocus());
// BackTab: sub2->sub1
key = QKeyEvent(QEvent::KeyPress, Qt::Key_Tab, Qt::ShiftModifier, "", false, 1);
QGuiApplication::sendEvent(window, &key);
QVERIFY(key.isAccepted());
item = findItem<QQuickItem>(window->contentItem(), "sub1");
QVERIFY(item);
QVERIFY(item->hasActiveFocus());
// BackTab: sub1->sub2
key = QKeyEvent(QEvent::KeyPress, Qt::Key_Tab, Qt::ShiftModifier, "", false, 1);
QGuiApplication::sendEvent(window, &key);
QVERIFY(key.isAccepted());
item = findItem<QQuickItem>(window->contentItem(), "sub2");
QVERIFY(item);
QVERIFY(item->hasActiveFocus());
}
示例3: 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);
//.........这里部分代码省略.........
示例4: forceActiveFocus
void tst_qquickfocusscope::forceActiveFocus()
{
QQuickView *view = new QQuickView;
view->setSource(testFileUrl("forceActiveFocus.qml"));
view->show();
view->requestActivate();
QVERIFY(QTest::qWaitForWindowExposed(view));
QTRY_VERIFY(view == qGuiApp->focusWindow());
QQuickItem *rootObject = view->rootObject();
QVERIFY(rootObject);
QQuickItem *scope = findItem<QQuickItem>(rootObject, QLatin1String("scope"));
QQuickItem *itemA1 = findItem<QQuickItem>(rootObject, QLatin1String("item-a1"));
QQuickItem *scopeA = findItem<QQuickItem>(rootObject, QLatin1String("scope-a"));
QQuickItem *itemA2 = findItem<QQuickItem>(rootObject, QLatin1String("item-a2"));
QQuickItem *itemB1 = findItem<QQuickItem>(rootObject, QLatin1String("item-b1"));
QQuickItem *scopeB = findItem<QQuickItem>(rootObject, QLatin1String("scope-b"));
QQuickItem *itemB2 = findItem<QQuickItem>(rootObject, QLatin1String("item-b2"));
QVERIFY(scope);
QVERIFY(itemA1);
QVERIFY(scopeA);
QVERIFY(itemA2);
QVERIFY(itemB1);
QVERIFY(scopeB);
QVERIFY(itemB2);
QSignalSpy rootSpy(rootObject, SIGNAL(activeFocusChanged(bool)));
QSignalSpy scopeSpy(scope, SIGNAL(activeFocusChanged(bool)));
QSignalSpy scopeASpy(scopeA, SIGNAL(activeFocusChanged(bool)));
QSignalSpy scopeBSpy(scopeB, SIGNAL(activeFocusChanged(bool)));
// First, walk the focus from item-a1 down to item-a2 and back again
itemA1->forceActiveFocus();
QVERIFY(itemA1->hasActiveFocus());
QVERIFY(!rootObject->hasActiveFocus());
QCOMPARE(rootSpy.count(), 0);
QCOMPARE(scopeSpy.count(), 1);
scopeA->forceActiveFocus();
QVERIFY(!itemA1->hasActiveFocus());
QVERIFY(scopeA->hasActiveFocus());
QCOMPARE(scopeASpy.count(), 1);
QCOMPARE(rootSpy.count(), 0);
QCOMPARE(scopeSpy.count(), 1);
itemA2->forceActiveFocus();
QVERIFY(!itemA1->hasActiveFocus());
QVERIFY(itemA2->hasActiveFocus());
QVERIFY(scopeA->hasActiveFocus());
QCOMPARE(scopeASpy.count(), 1);
QCOMPARE(rootSpy.count(), 0);
QCOMPARE(scopeSpy.count(), 1);
scopeA->forceActiveFocus();
QVERIFY(!itemA1->hasActiveFocus());
QVERIFY(itemA2->hasActiveFocus());
QVERIFY(scopeA->hasActiveFocus());
QCOMPARE(scopeASpy.count(), 1);
QCOMPARE(rootSpy.count(), 0);
QCOMPARE(scopeSpy.count(), 1);
itemA1->forceActiveFocus();
QVERIFY(itemA1->hasActiveFocus());
QVERIFY(!scopeA->hasActiveFocus());
QVERIFY(!itemA2->hasActiveFocus());
QCOMPARE(scopeASpy.count(), 2);
QCOMPARE(rootSpy.count(), 0);
QCOMPARE(scopeSpy.count(), 1);
// Then jump back and forth between branch 'a' and 'b'
itemB1->forceActiveFocus();
QVERIFY(itemB1->hasActiveFocus());
QCOMPARE(rootSpy.count(), 0);
QCOMPARE(scopeSpy.count(), 1);
scopeA->forceActiveFocus();
QVERIFY(!itemA1->hasActiveFocus());
QVERIFY(!itemB1->hasActiveFocus());
QVERIFY(scopeA->hasActiveFocus());
QCOMPARE(scopeASpy.count(), 3);
QCOMPARE(rootSpy.count(), 0);
QCOMPARE(scopeSpy.count(), 1);
scopeB->forceActiveFocus();
QVERIFY(!scopeA->hasActiveFocus());
QVERIFY(!itemB1->hasActiveFocus());
QVERIFY(scopeB->hasActiveFocus());
QCOMPARE(scopeASpy.count(), 4);
QCOMPARE(scopeBSpy.count(), 1);
QCOMPARE(rootSpy.count(), 0);
QCOMPARE(scopeSpy.count(), 1);
itemA2->forceActiveFocus();
QVERIFY(!scopeB->hasActiveFocus());
QVERIFY(itemA2->hasActiveFocus());
QCOMPARE(scopeASpy.count(), 5);
QCOMPARE(scopeBSpy.count(), 2);
//.........这里部分代码省略.........
示例5: attachedProperties
//.........这里部分代码省略.........
QVERIFY(!childAppWindow->property("attached_overlay").value<QQuickItem *>());
QQuickItem *childAppWindowControl = object->property("childAppWindowControl").value<QQuickItem *>();
QVERIFY(childAppWindowControl);
QCOMPARE(childAppWindowControl->property("attached_window").value<QQuickApplicationWindow *>(), childAppWindow);
QCOMPARE(childAppWindowControl->property("attached_contentItem").value<QQuickItem *>(), childAppWindow->contentItem());
QCOMPARE(childAppWindowControl->property("attached_activeFocusControl").value<QQuickItem *>(), childAppWindow->activeFocusControl());
QCOMPARE(childAppWindowControl->property("attached_header").value<QQuickItem *>(), childAppWindow->header());
QCOMPARE(childAppWindowControl->property("attached_footer").value<QQuickItem *>(), childAppWindow->footer());
QCOMPARE(childAppWindowControl->property("attached_overlay").value<QQuickItem *>(), childAppWindow->overlay());
QQuickItem *childAppWindowItem = object->property("childAppWindowItem").value<QQuickItem *>();
QVERIFY(childAppWindowItem);
QCOMPARE(childAppWindowItem->property("attached_window").value<QQuickApplicationWindow *>(), childAppWindow);
QCOMPARE(childAppWindowItem->property("attached_contentItem").value<QQuickItem *>(), childAppWindow->contentItem());
QCOMPARE(childAppWindowItem->property("attached_activeFocusControl").value<QQuickItem *>(), childAppWindow->activeFocusControl());
QCOMPARE(childAppWindowItem->property("attached_header").value<QQuickItem *>(), childAppWindow->header());
QCOMPARE(childAppWindowItem->property("attached_footer").value<QQuickItem *>(), childAppWindow->footer());
QCOMPARE(childAppWindowItem->property("attached_overlay").value<QQuickItem *>(), childAppWindow->overlay());
QObject *childAppWindowObject = object->property("childAppWindowObject").value<QObject *>();
QVERIFY(childAppWindowObject);
QVERIFY(!childAppWindowObject->property("attached_window").value<QQuickApplicationWindow *>());
QVERIFY(!childAppWindowObject->property("attached_contentItem").value<QQuickItem *>());
QVERIFY(!childAppWindowObject->property("attached_activeFocusControl").value<QQuickItem *>());
QVERIFY(!childAppWindowObject->property("attached_header").value<QQuickItem *>());
QVERIFY(!childAppWindowObject->property("attached_footer").value<QQuickItem *>());
QVERIFY(!childAppWindowObject->property("attached_overlay").value<QQuickItem *>());
window->show();
window->requestActivate();
QVERIFY(QTest::qWaitForWindowActive(window));
QVERIFY(!childControl->hasActiveFocus());
childControl->forceActiveFocus();
QTRY_VERIFY(childControl->hasActiveFocus());
QCOMPARE(window->activeFocusItem(), childControl);
QCOMPARE(childControl->property("attached_activeFocusControl").value<QQuickItem *>(), childControl);
QQuickItem *header = new QQuickItem;
window->setHeader(header);
QCOMPARE(window->header(), header);
QCOMPARE(childControl->property("attached_header").value<QQuickItem *>(), header);
QQuickItem *footer = new QQuickItem;
window->setFooter(footer);
QCOMPARE(window->footer(), footer);
QCOMPARE(childControl->property("attached_footer").value<QQuickItem *>(), footer);
childAppWindow->show();
childAppWindow->requestActivate();
QVERIFY(QTest::qWaitForWindowActive(childAppWindow));
QVERIFY(!childAppWindowControl->hasActiveFocus());
childAppWindowControl->forceActiveFocus();
QTRY_VERIFY(childAppWindowControl->hasActiveFocus());
QCOMPARE(childAppWindow->activeFocusItem(), childAppWindowControl);
QCOMPARE(childAppWindowControl->property("attached_activeFocusControl").value<QQuickItem *>(), childAppWindowControl);
childControl->setParentItem(childAppWindow->contentItem());
QCOMPARE(childControl->window(), childAppWindow);
QCOMPARE(childControl->property("attached_window").value<QQuickApplicationWindow *>(), childAppWindow);
QCOMPARE(childControl->property("attached_contentItem").value<QQuickItem *>(), childAppWindow->contentItem());
QCOMPARE(childControl->property("attached_activeFocusControl").value<QQuickItem *>(), childAppWindow->activeFocusControl());
QCOMPARE(childControl->property("attached_header").value<QQuickItem *>(), childAppWindow->header());
QCOMPARE(childControl->property("attached_footer").value<QQuickItem *>(), childAppWindow->footer());