⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qaccessiblewidgets.cpp

📁 奇趣公司比较新的qt/emd版本
💻 CPP
📖 第 1 页 / 共 4 页
字号:
                    str = dockWidget()->isFloating() ? QDockWidget::tr("Dock")                                                     : QDockWidget::tr("Float");                }                break;            default:                break;            }        }    }    return str;}bool QAccessibleTitleBar::doAction(int action, int child, const QVariantList& /*params*/){    if (!child || !dockWidget()->isEnabled())        return false;    switch (action) {    case DefaultAction:    case Press: {        QDockWidgetLayout *layout = dockWidgetLayout();        QAbstractButton *btn = static_cast<QAbstractButton *>(layout->widget((QDockWidgetLayout::Role)child));        if (btn)            btn->animateClick();        return true;        break;}    default:        break;    }    return false;}int QAccessibleTitleBar::userActionCount (int /*child*/) const{    return 0;}QAccessible::Role QAccessibleTitleBar::role(int child) const{    switch (child) {        case 0:            return TitleBar;            break;        default:            if (child >= 1 && child <= childCount())                return PushButton;            break;    }    return NoRole;}void QAccessibleTitleBar::setText(Text /*t*/, int /*child*/, const QString &/*text*/){}bool QAccessibleTitleBar::isValid() const{    return dockWidget();}#endif // QT_NO_DOCKWIDGET#ifndef QT_NO_TEXTEDITvoid QAccessibleTextEdit::addSelection(int startOffset, int endOffset){    setSelection(0, startOffset, endOffset);}QString QAccessibleTextEdit::attributes(int offset, int *startOffset, int *endOffset){    // TODO - wait for a definition of attributes    Q_UNUSED(offset);    Q_UNUSED(startOffset);    Q_UNUSED(endOffset);    return QString();}int QAccessibleTextEdit::cursorPosition(){    return textEdit()->textCursor().position();}QRect QAccessibleTextEdit::characterRect(int offset, CoordinateType coordType){    QTextEdit *edit = textEdit();    QTextCursor cursor(edit->document());    cursor.setPosition(offset);    if (cursor.position() != offset)        return QRect();    QRect r = edit->cursorRect(cursor);    if (cursor.movePosition(QTextCursor::NextCharacter)) {        r.setWidth(edit->cursorRect(cursor).y() - r.y());    } else {        // we don't know the width of the character - maybe because we're at document end        // in that case, IAccessible2 tells us to return the width of a default character        int averageCharWidth = QFontMetrics(cursor.charFormat().font()).averageCharWidth();        if (edit->layoutDirection() == Qt::RightToLeft)            averageCharWidth *= -1;        r.setWidth(averageCharWidth);    }    switch (coordType) {    case RelativeToScreen:        r.moveTo(edit->viewport()->mapToGlobal(r.topLeft()));        break;    case RelativeToParent:        break;    }    return r;}int QAccessibleTextEdit::selectionCount(){    return textEdit()->textCursor().hasSelection() ? 1 : 0;}int QAccessibleTextEdit::offsetAtPoint(const QPoint &point, CoordinateType coordType){    QTextEdit *edit = textEdit();    QPoint p = point;    if (coordType == RelativeToScreen)        p = edit->viewport()->mapFromGlobal(p);    // convert to document coordinates    p += QPoint(edit->horizontalScrollBar()->value(), edit->verticalScrollBar()->value());    return edit->document()->documentLayout()->hitTest(p, Qt::ExactHit);}void QAccessibleTextEdit::selection(int selectionIndex, int *startOffset, int *endOffset){    *startOffset = *endOffset = 0;    QTextCursor cursor = textEdit()->textCursor();    if (selectionIndex != 0 || !cursor.hasSelection())        return;    *startOffset = cursor.selectionStart();    *endOffset = cursor.selectionEnd();}QString QAccessibleTextEdit::text(int startOffset, int endOffset){    QTextCursor cursor(textEdit()->document());    cursor.setPosition(startOffset, QTextCursor::MoveAnchor);    cursor.setPosition(endOffset, QTextCursor::KeepAnchor);    return cursor.selectedText();}QString QAccessibleTextEdit::textBeforeOffset (int offset, BoundaryType boundaryType,        int *startOffset, int *endOffset){    // TODO - what exactly is before?    Q_UNUSED(offset);    Q_UNUSED(boundaryType);    Q_UNUSED(startOffset);    Q_UNUSED(endOffset);    return QString();}QString QAccessibleTextEdit::textAfterOffset(int offset, BoundaryType boundaryType,        int *startOffset, int *endOffset){    // TODO - what exactly is after?    Q_UNUSED(offset);    Q_UNUSED(boundaryType);    Q_UNUSED(startOffset);    Q_UNUSED(endOffset);    return QString();}QString QAccessibleTextEdit::textAtOffset(int offset, BoundaryType boundaryType,                                          int *startOffset, int *endOffset){    Q_ASSERT(startOffset);    Q_ASSERT(endOffset);    *startOffset = *endOffset = -1;    QTextEdit *edit = textEdit();    QTextCursor cursor(edit->document());    if (offset >= characterCount())        return QString();    switch (boundaryType) {    case CharBoundary:        cursor.setPosition(offset);        *startOffset = cursor.position();        cursor.movePosition(QTextCursor::NextCharacter, QTextCursor::KeepAnchor);        *endOffset = cursor.position();        break;    case WordBoundary:        cursor.movePosition(QTextCursor::StartOfWord, QTextCursor::MoveAnchor);        *startOffset = cursor.position();        cursor.movePosition(QTextCursor::EndOfWord, QTextCursor::KeepAnchor);        *endOffset = cursor.position();        break;    case SentenceBoundary:        // TODO - what's a sentence?        return QString();    case LineBoundary:        cursor.movePosition(QTextCursor::StartOfLine, QTextCursor::MoveAnchor);        *startOffset = cursor.position();        cursor.movePosition(QTextCursor::EndOfLine, QTextCursor::KeepAnchor);        *endOffset = cursor.position();        break;    case ParagraphBoundary:        cursor.movePosition(QTextCursor::StartOfBlock, QTextCursor::MoveAnchor);        *startOffset = cursor.position();        cursor.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor);        *endOffset = cursor.position();        break;    case NoBoundary: {        *startOffset = 0;        const QString txt = edit->toPlainText();        *endOffset = txt.count();        return txt; }    default:        qDebug("AccessibleTextAdaptor::textAtOffset: Unknown boundary type %d", boundaryType);        return QString();    }    return cursor.selectedText();}void QAccessibleTextEdit::removeSelection(int selectionIndex){    if (selectionIndex != 0)        return;    QTextCursor cursor = textEdit()->textCursor();    cursor.clearSelection();    textEdit()->setTextCursor(cursor);}void QAccessibleTextEdit::setCursorPosition(int position){    QTextCursor cursor = textEdit()->textCursor();    cursor.setPosition(position);    textEdit()->setTextCursor(cursor);}void QAccessibleTextEdit::setSelection(int selectionIndex, int startOffset, int endOffset){    if (selectionIndex != 0)        return;    QTextCursor cursor = textEdit()->textCursor();    cursor.setPosition(startOffset, QTextCursor::MoveAnchor);    cursor.setPosition(endOffset, QTextCursor::KeepAnchor);    textEdit()->setTextCursor(cursor);}int QAccessibleTextEdit::characterCount(){    return textEdit()->toPlainText().count();}void QAccessibleTextEdit::scrollToSubstring(int startIndex, int endIndex){    QTextEdit *edit = textEdit();    QTextCursor cursor(edit->document());    cursor.setPosition(startIndex);    QRect r = edit->cursorRect(cursor);    cursor.setPosition(endIndex);    r.setBottomRight(edit->cursorRect(cursor).bottomRight());    r.moveTo(r.x() + edit->horizontalScrollBar()->value(),             r.y() + edit->verticalScrollBar()->value());    // E V I L, but ensureVisible is not public    if (!QMetaObject::invokeMethod(edit, "_q_ensureVisible", Q_ARG(QRectF, r)))        qWarning("AccessibleTextEdit::scrollToSubstring failed!");}static QTextCursor cursorForRange(QTextEdit *textEdit, int startOffset, int endOffset){    QTextCursor cursor(textEdit->document());    cursor.setPosition(startOffset, QTextCursor::MoveAnchor);    cursor.setPosition(endOffset, QTextCursor::KeepAnchor);    return cursor;}void QAccessibleTextEdit::copyText(int startOffset, int endOffset){    QTextCursor cursor = cursorForRange(textEdit(), startOffset, endOffset);    if (!cursor.hasSelection())        return;//     QApplication::clipboard()->setMimeData(new QTextEditMimeData(cursor.selection()));}void QAccessibleTextEdit::deleteText(int startOffset, int endOffset){    QTextCursor cursor = cursorForRange(textEdit(), startOffset, endOffset);    cursor.removeSelectedText();}void QAccessibleTextEdit::insertText(int offset, const QString &text){    QTextCursor cursor(textEdit()->document());    cursor.setPosition(offset);    cursor.insertText(text);}void QAccessibleTextEdit::cutText(int startOffset, int endOffset){    QTextCursor cursor = cursorForRange(textEdit(), startOffset, endOffset);    if (!cursor.hasSelection())        return;//     QApplication::clipboard()->setMimeData(new QTextEditMimeData(cursor.selection()));    cursor.removeSelectedText();}void QAccessibleTextEdit::pasteText(int offset){    QTextEdit *edit = textEdit();    QTextCursor oldCursor = edit->textCursor();    QTextCursor newCursor = oldCursor;    newCursor.setPosition(offset);    edit->setTextCursor(newCursor);#ifndef QT_NO_CLIPBOARD    edit->paste();#endif    edit->setTextCursor(oldCursor);}void QAccessibleTextEdit::replaceText(int startOffset, int endOffset, const QString &text){    QTextCursor cursor = cursorForRange(textEdit(), startOffset, endOffset);    cursor.removeSelectedText();    cursor.insertText(text);}void QAccessibleTextEdit::setAttributes(int startOffset, int endOffset, const QString &attributes){    // TODO    Q_UNUSED(startOffset);    Q_UNUSED(endOffset);    Q_UNUSED(attributes);}#endif // QT_NO_TEXTEDIT#ifndef QT_NO_MAINWINDOWQAccessibleMainWindow::QAccessibleMainWindow(QWidget *widget)    : QAccessibleWidgetEx(widget, Application) { }QVariant QAccessibleMainWindow::invokeMethodEx(QAccessible::Method /*method*/, int /*child*/, const QVariantList & /*params*/){    return QVariant();}int QAccessibleMainWindow::childCount() const{    QList<QWidget*> kids = childWidgets(mainWindow(), true);    return kids.count();}int QAccessibleMainWindow::indexOfChild(const QAccessibleInterface *iface) const{    QList<QWidget*> kids = childWidgets(mainWindow(), true);    int childIndex = kids.indexOf(static_cast<QWidget*>(iface->object()));    return childIndex == -1 ? -1 : ++childIndex;}int QAccessibleMainWindow::navigate(RelationFlag relation, int entry, QAccessibleInterface **iface) const{    if (relation == Child && entry >= 1) {        QList<QWidget*> kids = childWidgets(mainWindow(), true);        if (entry <= kids.count()) {            *iface = QAccessible::queryAccessibleInterface(kids.at(entry - 1));            return *iface ? 0 : -1;        }    }    return QAccessibleWidgetEx::navigate(relation, entry, iface);}QMainWindow *QAccessibleMainWindow::mainWindow() const{    return qobject_cast<QMainWindow *>(object());}#endif //QT_NO_MAINWINDOW#endif // QT_NO_ACCESSIBILITY

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -