0

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 设置可访问名称?

我的直接目标是远程控制应用程序以实现可访问性。但是我希望这项工作能够同时完成双重职责并让我完全可访问,因此我以后不必为可访问性做单独的努力。

4

1 回答 1

3

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

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

这是你要找的吗?

于 2013-09-11T06:04:53.980 回答