如何从按钮文本qt中删除和安全
How to remove & safely from button text qt
我有带有&当我做button->text()
时,它返回'&'因为它有一个快捷键,我们有时有超过2个的按钮。
这用于自动远程测试。编写测试的人不是程序员,也不知道对象的名称。
QT如何处理时,显示按钮上的标签没有额外的&号?
一个可能的解决方案?:
qAbstractButton->text().replace(QRegExp("SomeRegex"), "");
你不应该需要按钮的文本。您最有可能使用文本来确定单击了哪个按钮。这是错误的!您应该为按钮提供合理的对象名称。如果你在Qt Designer中设计UI,它们已经有了名字。如果您自己编写代码,请使用setObjectName
设置名称。测试线束应该检查焦点小部件的名称。
如果名称不是全局唯一的,测试工具也可以使用父部件的名称,例如
auto widget = qApp->focusWidget();
Q_ASSERT(widget->parent() && widget->parent()->objectName() == "...");
Q_ASSERT(widget->objectName() == "...");
我最终使用了这个算法:
const QString labelOnButton = qAbstractButton->text();
QString fixedLabel;
int i = 0;
int lastIndex = labelOnButton.length() - 1;
while(i < lastIndex)
{
if (labelOnButton[i] == '&')
{
if (labelOnButton[i + 1] == '&')
{
fixedLabel += labelOnButton[i];
++i;
}
}
else
{
fixedLabel += labelOnButton[i];
}
++i;
}
if (labelOnButton[lastIndex] != '&')
{
fixedLabel += labelOnButton[lastIndex];
}
return fixedLabel;
相关文章:
- C++中的线程安全删除
- 逐字节删除 void* 是否安全?
- 线程调用的函数对对象删除是否安全?
- 从其存储的回调中删除 std::函数是否安全
- 将C 中的每个指针删除作为阵列的指针安全吗?
- 使用安全零内存新建/删除时出现问题
- 在特殊情况下使析构函数不是虚拟的,并删除基指针是否安全
- 调用不访问已删除对象中的任何类成员的类方法是否安全
- 通过 const_cast 删除 const 并调用不修改结果对象的非 const 函数是否安全?
- 通过指向其基的指针删除 POD 对象是否安全
- 在迭代地图时向/从地图添加/删除元素是否安全
- 在这里删除 c++ 易失性是否安全
- C++安全对象删除
- 调用remove()删除析构函数中的文件是否安全
- 删除函数中的对象:丑陋、容易出错、效率低下,而且通常不安全
- 从代码中删除SAL注释是否安全
- 如何安全删除QT::QTcpSocket
- dynamic_casting后删除指针是否安全
- 删除链接列表是否安全
- 测试答案是错的,对吗?它不会崩溃,因为我们删除NULL指针,这是安全的