⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qextdatetimevalidator.h

📁 Linux/Windows 环境下的跨平台开发程序
💻 H
字号:
#ifndef _QEXTDATETIMEVALIDATOR_H_
#define _QEXTDATETIMEVALIDATOR_H_

#include <qdatetime.h>
#include <qvalidator.h>

/*!
\class QextDateTimeValidator
\version 1.0
\author Wayne Roth (wroth@speakeasy.org)
\brief Date and time validation class for use with QextDateTimeSpinBox.
The QextDateTimeValidator class provides a validator for a QextDateTimeSpinBox.  It is intended
only for use in that context.
*/
class QextDateTimeValidator:public QValidator {
    Q_OBJECT

public:
    typedef enum _FieldType {
        FIELD_LITERAL,
        FIELD_AMPM,
        FIELD_DAY,
        FIELD_DAY_STRING,
        FIELD_HOUR_12,
        FIELD_HOUR_24,
        FIELD_MINUTE,
        FIELD_MONTH,
        FIELD_MONTH_STRING,
        FIELD_SECOND,
        FIELD_YEAR_2,
        FIELD_YEAR_4
    } FieldType;

    typedef enum _TokenType {
        TYPE_LITERAL,
        TYPE_SPECIFIER
    } TokenType;

    typedef struct _Token {
        FieldType FType;
        TokenType Type;
        QString SpecString;
        bool IsFixedSize;
        bool IsRightJustified;
        int TruncateLength;
        unsigned int MinSize;
        unsigned int MaxSize;
        struct _Token* Next;
    } Token;

    QextDateTimeValidator(QWidget* parent=0, const char* name=0);
    ~QextDateTimeValidator();
    Token* const displayFormat();
    void findStringLimits(void);
    void makeString(QString&, QDate&, QTime&) const;
    unsigned int maxDayStringSize(void) const;
    unsigned int maxMonthStringSize(void) const;
    unsigned int minDayStringSize(void) const;
    unsigned int minMonthStringSize(void) const;
    void setFormat(const QString&);
    void setMaxDayStringSize(unsigned int);
    void setMaxMonthStringSize(unsigned int);
    void setMinDayStringSize(unsigned int);
    void setMinMonthStringSize(unsigned int);
    void setStrings(const QStringList&, const QStringList&);
    virtual QValidator::State validate(QString&, int&) const;

protected:
    Token* DisplayFormat;
    QString Format;
    unsigned int MaxDayString;
    unsigned int MaxMonthString;
    unsigned int MinDayString;
    unsigned int MinMonthString;
    QString monthNames[12];
    QString dayNames[7];

    QString longMonthName(int) const;
    QString longDayName(int) const; 
    void setLongMonthNames(const QStringList&);
    void setLongDayNames(const QStringList&);
    void parseFormat();
};

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -