如何为只有图标的QPushButton设置辅助功能名称?

时间:2013-09-10 23:50:05

标签: windows qt accessibility

Qt版本4.8.1,为Windows构建,我正在尝试获取可访问性信息,以便正常使用我的某些按钮。

我的主窗口中有一个QPushButton,它有一个图标,因此:

m_restartBtn = new QPushButton();
QPixmap rpm(":/images/Restart32x32.png");
QIcon ricn(rpm);
m_restartBtn->setIcon(ricn);
m_restartBtn->setIconSize(rpm.rect().size());
// put it in a box in the main layout
QHBoxLayout *buttonBox = new QHBoxLayout;
ui->mainLayout->addLayout(buttonBox);
buttonBox->addWidget(m_restartBtn);

现在该按钮显示正确,如果我连接信号,它工作正常。但是,当我使用'inspect.exe'(来自Win 7 SDK)时,我看到该按钮显示,但没有名称。

如果我使用setText而不是放入图标,则可访问的名称会正确显示,但当然,我看到的是文字,而不是我的图标。如果我同时执行这两项操作,那么可访问的名称可以正常工作,但我会在屏幕上显示文本,正如人们所期望的那样。

我尝试setObjectNamesetWindowTitle只是为了笑,他们当然没有用。

是否有正确的方法来设置仅显示图标的QPushButton的可访问名称?

我的直接目标是远程控制应用程序以实现辅助功能。但是我希望这项工作能够完成双重任务并同时让我完全无法访问,因此我不需要为了可访问性而单独做一些工作。

1 个答案:

答案 0 :(得分:3)

您可以使用QWidget::setAccessibleName(const QString &name)

QPushButton *button = new QPushButton(this);
button->setAccessibleName("name");

这是你在找什么?