Russian Qt Forum
Июнь 16, 2024, 01:37 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Добавить поддержку VoiceOver для программы из одной кнопки  (Прочитано 1192 раз)
Кудаив
Гость
« : Январь 20, 2014, 11:33 »

Добрый день! Пытаюсь разобраться с QAccesible, а именно мне нужно реализовать поддержку VoiceOver на мак.
навоял, что то но завести не удалось
Код:
#ifndef ACCESSIBLE_H
#define ACCESSIBLE_H
 
#include <QAccessibleWidget>
#include <QRect>
#include <QWidget>
 
class AccessiblePushButton : public QAccessibleWidget
{
public:
    AccessiblePushButton(QWidget *widget, Role role = Client,
                         const QString & name = QString()) : QAccessibleWidget(widget, role, name){}
    int childCount() const{ return 0; }
    QRect rect(int child) const
    {
        return widget()->rect();
    }
    QString text(Text text, int child) const
    {
        switch (text)
        {
        case Value:
            return "Hello";
        case Name:
            return "QPushButton";
        case Description:
            return "This id pushbutton";
        case Help:
            return "Help for pushbutton";
        default:
            break;
        }
        return QAccessibleWidget::text(text, child);
    }
    Role role(int child) const{ return QAccessible::PushButton; }
 
};
 
#endif

Код:
#include <QtGui/QApplication>
#include <QPushButton>
#include <QAccessibleInterface>
#include "WidgetInterface.h"
 
 
QAccessibleInterface *clockFactory(const QString &classname, QObject *object)
{
    QAccessibleInterface *interface = 0;
 
    if (classname == "QPushButton")
        interface = new AccessiblePushButton(static_cast<QWidget *>(object));
    return interface;
}
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QAccessible::installFactory(clockFactory);
    QPushButton pb("Hello");
    pb.show();
    return a.exec();
}

не завелось...
примеров в гугле нет практически
если у кого то есть какой рабочий пример под мак - буду сильно благодарен если поделитесь))
заранее спасибо!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 20.