【问题标题】:How to use QLineEdit mask with Russian letters?如何使用带有俄语字母的 QLineEdit 掩码?
【发布时间】:2013-10-05 09:21:01
【问题描述】:

我需要QLineEdit 的情况总是较低。我会将它与俄语字母一起使用。

【问题讨论】:

    标签: c++ qt qtgui qtcore qlineedit


    【解决方案1】:

    您可以简单地应用“toLower”原则,尽管不适用于 QString,因为它始终使用“C”语言环境处理,但根据 Qt 文档,QLocale

    QString QLocale::toLower(const QString & str) const

    返回 str 的小写副本。该功能是在 QtCore 4.8 中引入的。

    如果您愿意,也可以将QValidator 用于QLineEdit(基于您的“初始请求”):

    void QValidator::setLocale(const QLocale & locale)

    设置将用于验证器的语言环境。除非调用了 setLocale,否则验证器将使用 QLocale::setDefault() 设置的默认语言环境。如果未设置默认语言环境,则为操作系统的语言环境。

    和:

    State QValidator::validate(QString & input, int & pos) const [纯虚拟]

    如果根据此验证器的规则输入无效,则此虚拟函数返回 Invalid,如果可能再进行一些编辑将使输入可接受(例如,用户在接受 10 到 10 之间的整数的小部件中键入“4”) 99),如果输入有效,则可接受。 如果需要,该函数可以更改 input 和 pos(光标位置)。

    一旦你有自己的验证器实现,你可以使用QLineEdit 的以下设置器来实际使用你的验证:

    void QLineEdit::setValidator(const QValidator * v)

    将此行编辑设置为仅接受验证器 v 将接受的输入。这允许您对可能输入的文本设置任意约束。 如果 v == 0,setValidator() 删除当前输入验证器。初始设置是没有输入验证器(即接受任何输入到 maxLength())。

    【讨论】:

    • 谢谢!我只是觉得, toLower 仅适用于拉丁语。
    猜你喜欢
    • 2021-07-13
    • 2012-08-02
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 2016-05-09
    • 2015-01-03
    • 2013-12-08
    • 1970-01-01
    相关资源
    最近更新 更多