QDebug Class
QDebug 클래스는 디버깅 정보를 위한 출력 스트림을 제공합니다. 더 보기...
| 헤더: | #include <QDebug> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| 상속: | QIODeviceBase |
| 상속 대상: |
- 상속받은 멤버를 포함한 모든 멤버 목록
- QDebug는 암시적 공유 클래스의 일부입니다.
공개 유형
| enum | VerbosityLevel { MinimumVerbosity, DefaultVerbosity, MaximumVerbosity } |
공개 함수
(since 6.9) | QDebug(QByteArray *byteArray) |
| QDebug(QIODevice *device) | |
| QDebug(QString *string) | |
| QDebug(QtMsgType t) | |
| QDebug(const QDebug &o) | |
| ~QDebug() | |
| bool | autoInsertSpaces() const |
| QDebug & | maybeQuote(char c = '"') |
| QDebug & | maybeSpace() |
| QDebug & | noquote() |
| QDebug & | nospace() |
| QDebug & | quote() |
(since 6.7) bool | quoteStrings() const |
| QDebug & | resetFormat() |
| void | setAutoInsertSpaces(bool b) |
(since 6.7) void | setQuoteStrings(bool b) |
| void | setVerbosity(int verbosityLevel) |
| QDebug & | space() |
| void | swap(QDebug &other) |
| int | verbosity() const |
| QDebug & | verbosity(int verbosityLevel) |
(since 6.0) QDebug & | operator<<(QByteArrayView t) |
| QDebug & | operator<<(QChar t) |
| QDebug & | operator<<(QLatin1StringView t) |
| QDebug & | operator<<(QStringView s) |
(since 6.0) QDebug & | operator<<(QUtf8StringView s) |
(since 6.7) QDebug & | operator<<(T i) |
(since 6.7) QDebug & | operator<<(T i) |
| QDebug & | operator<<(bool t) |
| QDebug & | operator<<(char t) |
| QDebug & | operator<<(char16_t t) |
| QDebug & | operator<<(char32_t t) |
| QDebug & | operator<<(const QByteArray &t) |
| QDebug & | operator<<(const QString &t) |
| QDebug & | operator<<(const char *t) |
(since 6.0) QDebug & | operator<<(const char16_t *t) |
(since 6.5) QDebug & | operator<<(const std::basic_string<Char, Args...> &s) |
(since 6.7) QDebug & | operator<<(const std::optional<T> &opt) |
(since 6.9) QDebug & | operator<<(const std::tuple<Ts...> &tuple) |
| QDebug & | operator<<(const void *t) |
| QDebug & | operator<<(double t) |
| QDebug & | operator<<(float t) |
| QDebug & | operator<<(int t) |
| QDebug & | operator<<(long t) |
| QDebug & | operator<<(qint64 t) |
| QDebug & | operator<<(quint64 t) |
| QDebug & | operator<<(short t) |
(since 6.5) QDebug & | operator<<(std::basic_string_view<Char, Args...> s) |
(since 6.6) QDebug & | operator<<(std::chrono::duration<Rep, Period> duration) |
(since 6.7) QDebug & | operator<<(std::nullopt_t) |
| QDebug & | operator<<(unsigned int t) |
| QDebug & | operator<<(unsigned long t) |
| QDebug & | operator<<(unsigned short t) |
| QDebug & | operator=(const QDebug &other) |
정적 공용 멤버
관련 비멤버
| QDebug | operator<<(QDebug debug, const QHash<Key, T> &hash) |
| QDebug | operator<<(QDebug debug, const QList<T> &list) |
| QDebug | operator<<(QDebug debug, const QMap<Key, T> &map) |
| QDebug | operator<<(QDebug debug, const QMultiHash<Key, T> &hash) |
| QDebug | operator<<(QDebug debug, const QMultiMap<Key, T> &map) |
| QDebug | operator<<(QDebug debug, const QSet<T> &set) |
(since 6.3) QDebug | operator<<(QDebug debug, const QVarLengthArray<T, P> &array) |
(since 6.9) QDebug | operator<<(QDebug debug, const std::array<T, N> &array) |
| QDebug | operator<<(QDebug debug, const std::list<T, Alloc> &vec) |
| QDebug | operator<<(QDebug debug, const std::map<Key, T, Compare, Alloc> &map) |
| QDebug | operator<<(QDebug debug, const std::multimap<Key, T, Compare, Alloc> &map) |
(since 6.9) QDebug | operator<<(QDebug debug, const std::multiset<Key, Compare, Alloc> &multiset) |
| QDebug | operator<<(QDebug debug, const std::pair<T1, T2> &pair) |
(since 6.9) QDebug | operator<<(QDebug debug, const std::set<Key, Compare, Alloc> &set) |
(since 6.9) QDebug | operator<<(QDebug debug, const std::unordered_map<Key, T, Hash, KeyEqual, Alloc> &map) |
(since 6.9) QDebug | operator<<(QDebug debug, const std::unordered_set<Key, Hash, KeyEqual, Alloc> &unordered_set) |
| QDebug | operator<<(QDebug debug, const std::vector<T, Alloc> &vec) |
(since 6.7) QDebug | operator<<(QDebug d, QAnyStringView s) |
(since 6.9) QDebug | operator<<(QDebug debug, T t) |
| QDebug | operator<<(QDebug debug, const QContiguousCache<T> &cache) |
| QDebug | operator<<(QDebug debug, const QFlags<T> &flags) |
매크로
상세 설명
QDebug는 개발자가 디버깅 또는 추적 정보를 장치, 파일, 문자열 또는 콘솔에 출력해야 할 때마다 사용됩니다.
기본 사용법
일반적인 경우, qDebug() 함수를 호출하여 디버깅 정보를 출력하는 데 사용할 기본 QDebug 객체를 얻는 것이 유용합니다.
qDebug () << "날짜:" << QDate::currentDate();
qDebug() << "Types:" << QString("String") << QChar('x') << QRect(0, 10, 50, 40);
qDebug() << "Custom coordinate type:" << coordinate;이는 ` QtMsgType ` 값인 ` QtDebugMsg`을 인수로 받는 생성자를 사용하여 QDebug 객체를 생성합니다. 마찬가지로, ` qInfo()`, ` qWarning()`, ` qCritical()` 및 ` qFatal()` 함수도 해당 메시지 유형에 대한 QDebug 객체를 반환합니다.
이 클래스는 또한 다른 상황을 위한 여러 생성자를 제공하며, 여기에는 파일에 디버깅 정보를 기록하거나 다른 장치에 출력하는 데 사용되는 ` QFile ` 또는 기타 ` QIODevice ` 하위 클래스를 인수로 받는 생성자가 포함됩니다. ` QString `를 인수로 받는 생성자는 표시 또는 직렬화를 위해 문자열에 기록하는 데 사용됩니다.
서식 지정 옵션
QDebug는 출력을 쉽게 읽을 수 있도록 서식을 지정합니다. 인자 사이에 공백을 자동으로 추가하고, QString, QByteArray, QChar 인자 주위에 따옴표를 추가합니다.
space(), nospace(), quote(), noquote() 메서드를 통해 이러한 옵션을 조정할 수 있습니다. 또한, QTextStream manipulators 를 QDebug 스트림으로 파이프 처리할 수 있습니다.
QDebugStateSaver formatting을 현재 범위 내에서만 변경합니다. resetFormat()은 옵션을 기본값으로 재설정합니다.
스트림에 사용자 정의 유형 쓰기
많은 표준 타입을 QDebug 객체에 출력할 수 있으며, Qt는 대부분의 Qt 값 타입을 지원합니다. 사용자 정의 타입에 대한 지원을 추가하려면 다음 예제와 같이 스트리밍 연산자를 구현해야 합니다.
QDebug operator<<(QDebug debug, const Coordinate &c)
{
QDebugStateSaver saver(debug);
debug.nospace() << '(' << c.x() << ", " << c.y() << ')';
return debug;
}이에 대한 자세한 내용은 ‘디버깅 기법’ 및 ‘사용자 정의 Qt 유형 생성’ 문서에서 확인할 수 있습니다.
멤버 유형 문서
enum QDebug::VerbosityLevel
이 열거형은 상세도 수준의 범위를 나타냅니다.
| 상수 | 값 |
|---|---|
QDebug::MinimumVerbosity | 0 |
QDebug::DefaultVerbosity | 2 |
QDebug::MaximumVerbosity | 7 |
verbosity() 및 setVerbosity()도 참조하십시오 .
멤버 함수 설명
[explicit, since 6.9] QDebug::QDebug(QByteArray *byteArray)
지정된 ` byteArray`에 데이터를 기록하는 디버그 스트림을 생성합니다.
데이터는 UTF-8로 인코딩되며, 이는 Windows와 같이 시스템 로케일과 다를 수 있습니다.
이 생성자로 인스턴스화된 객체의 경우, 데이터가 버퍼링될 수 있으며, 예를 들어 ` Qt::flush`를 사용하여 스트림을 플러시할 때까지 바이트 배열에 기록되지 않습니다.
이 함수는 Qt 6.9에서 도입되었습니다.
QTextStream manipulators도 참조하십시오 .
[explicit] QDebug::QDebug(QIODevice *device)
지정된 ` device`에 데이터를 기록하는 디버그 스트림을 생성합니다.
[explicit] QDebug::QDebug(QString *string)
지정된 ` string`에 데이터를 기록하는 디버그 스트림을 생성합니다.
[explicit] QDebug::QDebug(QtMsgType t)
t 메시지 유형에 대한 핸들러로 데이터를 기록하는 디버그 스트림을 생성합니다.
QDebug::QDebug(const QDebug &o)
다른 디버그 스트림 o 의 복사본을 생성합니다.
[noexcept] QDebug::~QDebug()
쓰기 대기 중인 모든 데이터를 즉시 처리하고 디버그 스트림을 종료합니다.
bool QDebug::autoInsertSpaces() const
이 QDebug 인스턴스가 쓰기 작업 사이에 공백을 자동으로 삽입하는 경우 true 를 반환합니다.
setAutoInsertSpaces() 및 QDebugStateSaver도 참조하십시오 .
QDebug &QDebug::maybeQuote(char c = '"')
현재 따옴표 자동 삽입 설정에 따라 디버그 스트림에 ' c ' 문자를 기록하고, 스트림에 대한 참조를 반환합니다.
기본 문자는 큰따옴표 " 입니다.
QDebug &QDebug::maybeSpace()
현재 공백 자동 삽입 설정에 따라 디버그 스트림에 공백 문자를 기록하고, 스트림에 대한 참조를 반환합니다.
QDebug &QDebug::noquote()
QChar, QString 및 QByteArray 콘텐츠 주위에 따옴표가 자동으로 삽입되는 기능을 비활성화하고, 스트림에 대한 참조를 반환합니다.
인용 처리가 비활성화되면, 이러한 유형의 내용은 따옴표 없이 출력되며, 인쇄 불가능한 문자에 대한 이스케이프 처리도 적용되지 않습니다.
quote() 및 maybeQuote()도 참조하십시오 .
QDebug &QDebug::nospace()
공백의 자동 삽입을 비활성화하고 스트림에 대한 참조를 반환합니다.
space() 및 maybeSpace()도 참조하십시오 .
QDebug &QDebug::quote()
QChar, QString 및 QByteArray 의 콘텐츠 주위에 자동으로 따옴표를 삽입하도록 설정하고, 스트림에 대한 참조를 반환합니다.
인용 처리 기능은 기본적으로 활성화되어 있습니다.
noquote() 및 maybeQuote()도 참조하십시오 .
[noexcept, since 6.7] bool QDebug::quoteStrings() const
이 QDebug 인스턴스가 스트리밍된 문자열을 따옴표로 묶을 경우(기본값), true 를 반환합니다.
이 함수는 Qt 6.7에서 도입되었습니다.
QDebugStateSaver, quote(), noquote(), setQuoteStrings()도 참조하십시오 .
QDebug &QDebug::resetFormat()
스트림 서식 옵션을 초기화하여 원래 생성된 상태로 되돌립니다.
void QDebug::setAutoInsertSpaces(bool b)
b 가 true인 경우, 쓰기 작업 사이에 공백이 자동으로 삽입되도록 합니다. 그렇지 않은 경우, 공백의 자동 삽입은 비활성화됩니다.
autoInsertSpaces() 및 QDebugStateSaver도 참조하십시오 .
[since 6.7] void QDebug::setQuoteStrings(bool b)
b 가 true 인 경우, 이 QDebug 인스턴스로 스트리밍되는 문자열의 따옴표 처리를 활성화합니다. 그렇지 않으면 따옴표 처리가 비활성화됩니다.
기본값은 문자열을 따옴표로 묶는 것입니다.
이 함수는 Qt 6.7에서 도입되었습니다.
QDebugStateSaver, quote(), noquote(), quoteStrings()도 참조하십시오 .
void QDebug::setVerbosity(int verbosityLevel)
스트림의 상세 수준을 ` verbosityLevel`로 설정합니다.
허용되는 범위는 0부터 7까지입니다. 기본값은 2입니다.
verbosity() 및 VerbosityLevel도 참조하십시오 .
QDebug &QDebug::space()
디버그 스트림에 공백 문자를 기록하고, 해당 스트림에 대한 참조를 반환합니다.
스트림은 향후 쓰기 작업 시 공백 자동 삽입이 활성화되어 있음을 기억합니다.
nospace() 및 maybeSpace()도 참조하십시오 .
[noexcept] void QDebug::swap(QDebug &other)
이 디버그 스트림 인스턴스를 ` other`로 교체합니다. 이 작업은 매우 빠르며 절대 실패하지 않습니다.
[static, since 6.9] template <typename T> QByteArray QDebug::toBytes(const T &object)
이는 object 를 QDebug::toString(object).toUtf8() 에 전달하는 것과 동일하지만, 더 효율적입니다.
이 함수는 Qt 6.9에서 도입되었습니다.
toString()도 참조하십시오 .
[static, since 6.0] template <typename T> QString QDebug::toString(const T &object)
object 를 문자열을 처리하는 QDebug 인스턴스로 스트리밍한 다음, 해당 문자열을 반환합니다.
이 함수는 디버깅을 위해 객체의 텍스트 표현이 필요하지만 ` operator<<`를 사용할 수 없는 경우에 유용합니다. 예를 들어:
문자열은 ` nospace()`를 사용하여 스트리밍됩니다.
이 함수는 Qt 6.0에서 도입되었습니다.
toBytes()도 참조하십시오 .
int QDebug::verbosity() const
디버그 스트림의 상세 수준을 반환합니다.
스트리밍 연산자는 이 값을 확인하여 상세 출력이 필요한지 판단하고, 수준에 따라 더 많은 정보를 출력할 수 있습니다. 값이 높을수록 더 많은 정보가 필요함을 나타냅니다.
허용되는 범위는 0에서 7까지입니다. 기본값은 2입니다.
setVerbosity() 및 VerbosityLevel도 참조하십시오 .
QDebug &QDebug::verbosity(int verbosityLevel)
스트림의 상세 출력 수준을 ‘ verbosityLevel ’로 설정하고 스트림에 대한 참조를 반환합니다.
허용되는 범위는 0부터 7까지입니다. 기본값은 2입니다.
verbosity(), setVerbosity() 및 VerbosityLevel도 참조하십시오 .
[since 6.0] QDebug &QDebug::operator<<(QByteArrayView t)
관찰된 바이트 배열 t 의 데이터를 스트림에 기록하고, 해당 스트림에 대한 참조를 반환합니다.
일반적으로 ` QDebug `는 데이터를 따옴표로 묶어 출력하며, 제어 문자나 비-US-ASCII 문자를 C 에스케이프 시퀀스(\xAB)로 변환합니다. 이렇게 하면 출력은 항상 7비트 호환성을 유지하며, 필요한 경우 출력된 문자열을 복사하여 C++ 소스 코드에 다시 붙여넣을 수 있습니다.
변환 없이 인쇄 불가능한 문자를 출력하려면 noquote() 기능을 활성화하십시오. 일부 QDebug 백엔드는 8비트 호환성이 보장되지 않을 수 있다는 점에 유의하십시오.
예제는 QByteArray 오버로드에서 확인할 수 있습니다.
이 함수는 Qt 6.0에서 도입되었습니다.
QDebug &QDebug::operator<<(QChar t)
t 문자를 스트림에 기록하고, 해당 스트림에 대한 참조를 반환합니다. 일반적으로 ` QDebug `는 제어 문자와 비-US-ASCII 문자를 C 이스케이프 시퀀스나 유니코드 값(`\u1234`)으로 출력합니다. 변환 없이 출력할 수 없는 문자를 출력하려면 ` noquote()` 기능을 활성화해야 하지만, 일부 ` QDebug ` 백엔드는 8비트 호환성이 보장되지 않아 ` t`를 표현하지 못할 수도 있습니다.
QDebug &QDebug::operator<<(QLatin1StringView t)
t 라는 문자열을 스트림에 기록하고, 해당 스트림에 대한 참조를 반환합니다. 일반적으로 QDebug 는 문자열을 따옴표 안에 출력하며, 인쇄 불가능한 문자를 해당 유니코드 값(\u1234)으로 변환합니다.
변환 없이 인쇄 불가능한 문자를 출력하려면 noquote() 기능을 활성화하십시오. 일부 QDebug 백엔드는 8비트 호환성이 보장되지 않을 수 있으므로 주의하십시오.
예제는 QString 오버로드를 참조하십시오.
QDebug &QDebug::operator<<(QStringView s)
문자열 뷰( s)를 스트림에 기록하고, 해당 스트림에 대한 참조를 반환합니다. 일반적으로 ` QDebug `는 문자열을 따옴표로 묶어 출력하며, 인쇄 불가능한 문자를 해당 유니코드 값으로 변환합니다(`\u1234`).
변환 없이 인쇄 불가능한 문자를 출력하려면 noquote() 기능을 활성화하십시오. 일부 QDebug 백엔드는 8비트 호환성이 보장되지 않을 수 있으므로 주의하십시오.
예제는 QString 오버로드를 참조하십시오.
[since 6.0] QDebug &QDebug::operator<<(QUtf8StringView s)
문자열 뷰인 ` s`를 스트림에 기록하고, 해당 스트림에 대한 참조를 반환합니다.
일반적으로 ` QDebug `은 데이터를 따옴표 안에 출력하며, 제어 문자나 비-US-ASCII 문자를 C의 이스케이프 시퀀스(`\xAB`)로 변환합니다. 이렇게 하면 출력은 항상 7비트 호환성을 유지하며, 필요한 경우 출력에서 문자열을 복사하여 C++ 소스 코드에 다시 붙여넣을 수 있습니다.
변환 없이 인쇄 불가능한 문자를 출력하려면 ` noquote()` 기능을 활성화하십시오. 일부 QDebug 백엔드는 8비트 호환성이 보장되지 않을 수 있다는 점에 유의하십시오.
이 함수는 Qt 6.0에서 도입되었습니다.
[since 6.7] template <typename T> requires if_qint128<T> QDebug &QDebug::operator<<(T i)
[since 6.7] template <typename T> requires if_quint128<T> QDebug &QDebug::operator<<(T i)
128비트 정수 i 의 문자열 표현을 출력합니다.
참고: 이 연산자는 Qt가 128비트 정수형을 지원하는 경우에만 사용할 수 있습니다. 빌드 환경에 128비트 정수형이 지원되지만 Qt 라이브러리가 이를 지원하지 않도록 컴파일된 경우, 이 연산자는 대신 경고 메시지를 출력합니다.
참고: 이 연산자는 함수템플릿이므로 , 인자에 대해 암시적 변환이 수행되지 않습니다. 인자는 반드시 qint128 또는 quint128이어야 합니다.
이 함수들은 Qt 6.7에서 도입되었습니다.
QT_SUPPORTS_INT128도 참조하십시오 .
QDebug &QDebug::operator<<(bool t)
부울 값 t 을 스트림에 기록하고, 해당 스트림에 대한 참조를 반환합니다.
QDebug &QDebug::operator<<(char t)
문자 ' t'을 스트림에 기록하고, 해당 스트림에 대한 참조를 반환합니다.
QDebug &QDebug::operator<<(char16_t t)
UTF-16 문자 t 를 스트림에 기록하고, 해당 스트림에 대한 참조를 반환합니다.
QDebug &QDebug::operator<<(char32_t t)
UTF-32 문자 t 를 스트림에 기록하고, 해당 스트림에 대한 참조를 반환합니다.
QDebug &QDebug::operator<<(const QByteArray &t)
바이트 배열 t 을 스트림에 기록하고, 해당 스트림에 대한 참조를 반환합니다. 일반적으로 ` QDebug `는 배열을 따옴표로 묶어 출력하며, 제어 문자나 비-US-ASCII 문자를 C의 이스케이프 시퀀스(`\xAB`)로 변환합니다. 이렇게 하면 출력이 항상 7비트 호환성을 유지하므로, 필요한 경우 출력에서 문자열을 복사하여 C++ 소스 코드에 다시 붙여넣을 수 있습니다.
변환 없이 인쇄 불가능한 문자를 출력하려면 ` noquote()` 기능을 활성화하십시오. 일부 ` QDebug ` 백엔드는 8비트 호환성이 보장되지 않을 수 있다는 점에 유의하십시오.
출력 예시:
QByteArray ba;
ba = "a";
qDebug().noquote() << ba; // prints: a
qDebug() << ba; // prints: "a"
ba = "\"a\r\n\"";
qDebug() << ba; // prints: "\"a\r\n\""
ba = "\033"; // 이스케이프 문자인
qDebug() << ba; // prints: "\x1B"
ba = "\xC3\xA1";
qDebug() << ba; // prints: "\xC3\xA1"
ba = QByteArray("a\0b", 3);
qDebug() << ba; // prints: "\a\x00""b"QDebug 함수가 문자열을 닫았다가 다시 여는 방식을 주목해 보세요. 이는 C 및 C++ 언어에서 문자열 리터럴을 연결할 때와 같은 방식으로, 'b' 문자가 앞의 16진수 이스케이프 시퀀스의 일부로 해석되지 않도록 하기 위함입니다.
QDebug &QDebug::operator<<(const QString &t)
t 라는 문자열을 스트림에 기록하고, 해당 스트림에 대한 참조를 반환합니다. 일반적으로 ` QDebug `는 따옴표 안의 문자열을 출력하고, 인쇄 불가능한 문자를 해당 유니코드 값으로 변환합니다(\u1234).
변환 없이 인쇄 불가능한 문자를 출력하려면 noquote() 기능을 활성화하십시오. 일부 QDebug 백엔드는 8비트 호환성이 보장되지 않을 수 있으므로 주의하십시오.
출력 예시:
QString s;
s = "a";
qDebug().noquote() << s; // prints: a
qDebug() << s; // prints: "a"
s = "\"a\r\n\"";
qDebug() << s; // prints: "\"a\r\n\""
s = "\033"; // 이스케이프 문자
qDebug() << s; // prints: "\u001B"
s = "\u00AD"; // 소프트 하이픈
qDebug() << s; // prints: "\u00AD"
s = "\u00E1"; // 악센트가 있는 소문자 A
qDebug() << s; // prints: "á"
s = "a\u0301"; // "a" 뒤에 결합형 아쿠트 악센트가 붙음
qDebug() << s; // prints: "á";
s = "\u0430\u0301"; // 키릴 소문자 A 뒤에 결합형 아쿠트 악센트가 붙은 문자
qDebug() << s; // prints: "а́"QDebug &QDebug::operator<<(const char *t)
'\0'로 끝나는 UTF-8 문자열( t)을 스트림에 기록하고, 해당 스트림에 대한 참조를 반환합니다. 출력 시 이 문자열은 절대로 따옴표로 묶이거나 이스케이프 처리되지 않습니다. QDebug 는 내부적으로 UTF-16으로 버퍼링되며, 일부 백엔드를 사용하기 위해 로케일의 코덱을 사용하여 8비트로 변환해야 할 수 있으므로, 이로 인해 출력이 깨질(모지바케) 수 있습니다. US-ASCII 문자열로 제한하는 것이 권장됩니다.
[since 6.0] QDebug &QDebug::operator<<(const char16_t *t)
'\0'로 끝나는 UTF-16 문자열( t)을 스트림에 기록하고, 해당 스트림에 대한 참조를 반환합니다. 출력 시 이 문자열은 절대 따옴표로 묶이거나 이스케이프 처리되지 않습니다. QDebug 는 내부적으로 UTF-16으로 버퍼링되므로, 일부 백엔드를 사용하기 위해 로케일의 코덱을 사용하여 8비트로 변환해야 할 수 있으며, 이로 인해 출력이 깨질(모지바케) 수 있습니다. US-ASCII 문자열로 제한하는 것이 권장됩니다.
이 함수는 Qt 6.0에서 도입되었습니다.
[since 6.5] template <typename Char, typename... Args> QDebug &QDebug::operator<<(const std::basic_string<Char, Args...> &s)
[since 6.5] template <typename Char, typename... Args> QDebug &QDebug::operator<<(std::basic_string_view<Char, Args...> s)
s 인 문자열 또는 문자열 뷰를 스트림에 기록하고, 해당 스트림에 대한 참조를 반환합니다.
이 연산자들은 Char 가 다음 중 하나인 경우에만 오버로드 해결에 참여합니다.
- char
- char8_t (C++20 전용)
- char16_t
- char32_t
- wchar_t
이 함수들은 Qt 6.5에서 도입되었습니다.
[since 6.7] template <typename T> requires if_streamable<T> QDebug &QDebug::operator<<(const std::optional<T> &opt)
opt (설정되지 않은 경우 nullopt )의 내용을 이 스트림에 기록합니다. T 는 QDebug 로의 스트리밍을 지원해야 합니다.
이 함수는 Qt 6.7에서 도입되었습니다.
[since 6.9] template <typename... Ts> requires if_streamable<Ts...> QDebug &QDebug::operator<<(const std::tuple<Ts...> &tuple)
tuple 의 내용을 스트림에 기록합니다. 모든 Ts... 는 QDebug 로의 스트리밍을 지원해야 합니다.
이 함수는 Qt 6.9에서 도입되었습니다.
QDebug &QDebug::operator<<(const void *t)
t 라는 포인터를 스트림에 기록하고, 해당 스트림에 대한 참조를 반환합니다.
QDebug &QDebug::operator<<(double t)
64비트 부동소수점 숫자인 t 를 스트림에 기록하고, 해당 스트림에 대한 참조를 반환합니다.
QDebug &QDebug::operator<<(float t)
32비트 부동소수점 숫자 t 를 스트림에 기록하고, 해당 스트림에 대한 참조를 반환합니다.
QDebug &QDebug::operator<<(int t)
부호 있는 정수 t 를 스트림에 기록하고, 해당 스트림에 대한 참조를 반환합니다.
QDebug &QDebug::operator<<(long t)
부호가 있는 장정수 t 를 스트림에 기록하고, 해당 스트림에 대한 참조를 반환합니다.
QDebug &QDebug::operator<<(qint64 t)
부호 있는 64비트 정수 t 를 스트림에 기록하고, 해당 스트림에 대한 참조를 반환합니다.
QDebug &QDebug::operator<<(quint64 t)
t 에 저장된 부호 없는 64비트 정수를 스트림에 기록한 후, 해당 스트림에 대한 참조를 반환합니다.
QDebug &QDebug::operator<<(short t)
부호가 있는 짧은 정수 t 를 스트림에 기록하고, 해당 스트림에 대한 참조를 반환합니다.
[since 6.6] template <typename Rep, typename Period> QDebug &QDebug::operator<<(std::chrono::duration<Rep, Period> duration)
duration 의 시간 지속 시간을 스트림에 출력하고, 해당 스트림에 대한 참조를 반환합니다. 출력되는 문자열은 기간을 숫자로 표현한 뒤에 시간 단위가 붙은 형태로, C++ 표준 라이브러리에서 ` std::ostream`를 사용했을 때 생성되는 결과와 유사합니다.
단위는 지역화되지 않습니다.
이 함수는 Qt 6.6에서 도입되었습니다.
[since 6.7] QDebug &QDebug::operator<<(std::nullopt_t)
스트림에 nullopt를 기록합니다.
이 함수는 Qt 6.7에서 도입되었습니다.
QDebug &QDebug::operator<<(unsigned int t)
t 에 저장된 부호 없는 정수를 스트림에 기록하고, 해당 스트림에 대한 참조를 반환합니다.
QDebug &QDebug::operator<<(unsigned long t)
t 에 저장된 부호 없는 장정수 값을 스트림에 기록하고, 해당 스트림에 대한 참조를 반환합니다.
QDebug &QDebug::operator<<(unsigned short t)
t 에 저장된 부호 없는 짧은 정수 값을 스트림에 기록하고, 해당 스트림에 대한 참조를 반환합니다.
QDebug &QDebug::operator=(const QDebug &other)
other 디버그 스트림을 이 스트림에 할당하고, 이 스트림에 대한 참조를 반환합니다.
관련 비회원
template <typename Key, typename T> QDebug operator<<(QDebug debug, const QHash<Key, T> &hash)
hash 의 내용을 debug 에 기록합니다. Key 와 T 모두 QDebug 로의 스트리밍을 지원해야 합니다.
template <typename T> QDebug operator<<(QDebug debug, const QList<T> &list)
list 의 내용을 debug 에 기록합니다. T 는 QDebug 로의 스트리밍을 지원해야 합니다.
template <typename Key, typename T> QDebug operator<<(QDebug debug, const QMap<Key, T> &map)
map 의 내용을 debug 에 기록합니다. Key 과 T 모두 QDebug 으로의 스트리밍을 지원해야 합니다.
template <typename Key, typename T> QDebug operator<<(QDebug debug, const QMultiHash<Key, T> &hash)
hash 의 내용을 debug 에 기록합니다. Key 와 T 모두 QDebug 로의 스트리밍을 지원해야 합니다.
template <typename Key, typename T> QDebug operator<<(QDebug debug, const QMultiMap<Key, T> &map)
map 의 내용을 debug 에 기록합니다. Key 와 T 모두 QDebug 로의 스트리밍을 지원해야 합니다.
template <typename T> QDebug operator<<(QDebug debug, const QSet<T> &set)
set 의 내용을 debug 에 기록합니다. T 는 QDebug 로의 스트리밍을 지원해야 합니다.
[since 6.3] template <typename T, qsizetype P> QDebug operator<<(QDebug debug, const QVarLengthArray<T, P> &array)
array 의 내용을 debug 에 기록합니다. T 는 QDebug 로의 스트리밍을 지원해야 합니다.
이 함수는 Qt 6.3에서 도입되었습니다.
[since 6.9] template <typename T, std::size_t N> QDebug operator<<(QDebug debug, const std::array<T, N> &array)
array 의 내용을 debug 에 기록합니다. T 은 QDebug 로의 스트리밍을 지원해야 합니다.
이 함수는 Qt 6.9에서 도입되었습니다.
template <typename T, typename Alloc> QDebug operator<<(QDebug debug, const std::list<T, Alloc> &vec)
vec 목록의 내용을 debug 에 기록합니다. T 는 QDebug 로의 스트리밍을 지원해야 합니다.
template < typename Key, typename T, typename Compare, typename Alloc > QDebug operator<<(QDebug debug, const std::map<Key, T, Compare, Alloc> &map)
map 의 내용을 debug 에 기록합니다. Key 와 T 모두 QDebug 로의 스트리밍을 지원해야 합니다.
template < typename Key, typename T, typename Compare, typename Alloc > QDebug operator<<(QDebug debug, const std::multimap<Key, T, Compare, Alloc> &map)
map 의 내용을 debug 에 기록합니다. Key 과 T 모두 QDebug 으로의 스트리밍을 지원해야 합니다.
[since 6.9] template <
typename Key,
typename Compare,
typename Alloc
>
QDebug operator<<(QDebug debug, const std::multiset<Key, Compare, Alloc> &multiset)
multiset 의 내용을 debug 로 기록합니다. Key 유형은 QDebug 로의 스트리밍을 지원해야 합니다.
이 함수는 Qt 6.9에서 도입되었습니다.
template <typename T1, typename T2> QDebug operator<<(QDebug debug, const std::pair<T1, T2> &pair)
pair 의 내용을 debug 에 기록합니다. T1 과 T2 모두 QDebug 으로의 스트리밍을 지원해야 합니다.
[since 6.9] template <
typename Key,
typename Compare,
typename Alloc
>
QDebug operator<<(QDebug debug, const std::set<Key, Compare, Alloc> &set)
set 의 내용을 debug 에 기록합니다. Key 유형은 QDebug 로의 스트리밍을 지원해야 합니다.
이 함수는 Qt 6.9에서 도입되었습니다.
[since 6.9] template <
typename Key,
typename T,
typename Hash,
typename KeyEqual,
typename Alloc
>
QDebug operator<<(QDebug debug, const std::unordered_map<Key, T, Hash, KeyEqual, Alloc> &map)
map 의 내용을 debug 에 기록합니다. Key 와 T 모두 QDebug 으로의 스트리밍을 지원해야 합니다.
이 함수는 Qt 6.9에서 도입되었습니다.
[since 6.9] template <
typename Key,
typename Hash,
typename KeyEqual,
typename Alloc
>
QDebug operator<<(QDebug debug, const std::unordered_set<Key, Hash, KeyEqual, Alloc> &unordered_set)
unordered_set 의 내용을 debug 에 기록합니다. Key 타입은 QDebug 로의 스트리밍을 지원해야 합니다.
이 함수는 Qt 6.9에서 도입되었습니다.
template <typename T, typename Alloc> QDebug operator<<(QDebug debug, const std::vector<T, Alloc> &vec)
벡터 ` vec `의 내용을 ` debug`에 기록합니다. ` T `는 ` QDebug`로의 스트리밍을 지원해야 합니다.
[since 6.7] QDebug operator<<(QDebug d, QAnyStringView s)
디버그 스트림 d 에 s 를 출력합니다.
d.quotedString() 가 true 인 경우, 문자열이 어떤 인코딩으로 되어 있는지 나타냅니다. 단순히 문자열 데이터만 원한다면 다음과 같이 visit()를 사용하십시오:
s.visit([&d) (auto s) { d << s; });이 함수는 Qt 6.7에서 도입되었습니다.
QAnyStringView::visit()도 참조하십시오 .
[since 6.9] template <typename T> requires if_ordering_type<T> QDebug operator<<(QDebug debug, T t)
Qt 또는 std 정렬 값 t 을 ` debug ` 객체에 출력합니다.
제약 조건
T 가 <QT/Std>::<WEAK/partial/strong>_ordering 중 하나인 경우에만 오버로드 해결에 참여합니다.
이 함수는 Qt 6.9에서 도입되었습니다.
template <typename T> QDebug operator<<(QDebug debug, const QContiguousCache<T> &cache)
cache 의 내용을 debug 에 기록합니다. T 는 QDebug 로의 스트리밍을 지원해야 합니다.
template <typename T> QDebug operator<<(QDebug debug, const QFlags<T> &flags)
flags 가 debug 에 글을 올립니다.
매크로 설명서
QDebug qCritical()
중앙 메시지 핸들러에 중요(critical) 메시지를 기록하는 ` QDebug ` 객체를 반환합니다.
예시:
qCritical() << "Brush:" << myQBrush << "Other value:" << i;qCritical()은 printf 패러다임을 따르는 qCritical(const char *, ...)의 대안입니다.
QDebug 와 유형별 스트림 연산자는 디버그 메시지를 더 쉽게 읽을 수 있도록 다양한 서식을 적용한다는 점에 유의하십시오. 자세한 내용은 formatting options 문서를 참조하십시오.
디버깅을 위해, 치명적인 메시지가 발생했을 때 프로그램을 중단시키는 것이 때로는 편리합니다. 이렇게 하면 코어 덤프를 확인하거나 디버거를 연결할 수 있습니다. qFatal()도 참조하십시오. 이 기능을 활성화하려면 환경 변수 QT_FATAL_CRITICALS 을 숫자 n 로 설정하십시오. 그러면 프로그램은 n번째 치명적인 메시지가 발생했을 때 종료됩니다. 즉, 환경 변수가 1로 설정되어 있으면 첫 번째 호출 시 종료되고, 10으로 설정되어 있으면 10번째 호출 시 종료됩니다. 환경 변수에 숫자가 아닌 값이 설정되어 있으면 1로 간주됩니다.
참고: 이 매크로는 스레드 안전합니다.
qCritical(const char *, ...) 및 qCCritical()도 참조하십시오 .
QDebug qDebug()
중앙 메시지 핸들러에 디버그 메시지를 기록하는 ` QDebug ` 객체를 반환합니다.
예시:
qDebug() << "Brush:" << myQBrush << "Other value:" << i;qDebug()는 printf 패러다임을 따르는 ` qDebug(const char *, ...)`의 대안입니다.
QDebug 와 유형별 스트림 연산자는 디버그 메시지를 더 읽기 쉽게 만들기 위해 다양한 서식을 적용한다는 점에 유의하십시오. 자세한 내용은 formatting options 문서를 참조하십시오.
컴파일 시 QT_NO_DEBUG_OUTPUT 가 정의된 경우, 이 함수는 아무 작업도 수행하지 않습니다.
참고: 이 매크로는 스레드 안전합니다.
qDebug(const char *, ...) 및 qCDebug()도 참조하십시오 .
QDebug qFatal()
중앙 메시지 핸들러에 치명적인 메시지를 기록하는 ` QDebug ` 객체를 반환합니다.
qFatal()은 printf 패러다임을 따르는 qFatal(const char *, ...)의 대안입니다.
QDebug 와 유형별 스트림 연산자는 디버그 메시지를 더 쉽게 읽을 수 있도록 다양한 서식을 적용한다는 점에 유의하십시오. 자세한 내용은 formatting options 문서를 참조하십시오.
기본 메시지 핸들러를 사용하는 경우, 반환된 스트림은 코어 덤프를 생성하기 위해 중단됩니다. Windows에서 디버그 빌드의 경우, 이 함수는 _CRT_ERROR를 보고하여 디버거를 애플리케이션에 연결할 수 있게 해줍니다.
참고: 이 매크로는 스레드 안전합니다.
qFatal(const char *, ...) 및 qCFatal()도 참조하십시오 .
QDebug qInfo()
중앙 메시지 핸들러에 정보성 메시지를 기록하는 ` QDebug ` 객체를 반환합니다.
예시:
qInfo() << "Brush:" << myQBrush << "Other value:" << i;qInfo()는 printf 패러다임을 따르는 ` qInfo(const char *, ...)`의 대안입니다.
QDebug 와 유형별 스트림 연산자는 디버그 메시지를 더 쉽게 읽을 수 있도록 다양한 서식을 적용한다는 점에 유의하십시오. 자세한 내용은 formatting options 문서를 참조하십시오.
컴파일 시 QT_NO_INFO_OUTPUT 이 정의된 경우, 이 함수는 아무 작업도 수행하지 않습니다.
참고: 이 매크로는 스레드 안전합니다.
qInfo(const char *, ...) 및 qCInfo()도 참조하십시오 .
QDebug qWarning()
중앙 메시지 핸들러에 경고 메시지를 기록하는 ` QDebug ` 객체를 반환합니다.
예시:
qWarning() << "Brush:" << myQBrush << "Other value:" << i;qWarning()은 printf 패러다임을 따르는 qWarning(const char *, ...)의 대안입니다.
QDebug 와 유형별 스트림 연산자는 디버그 메시지를 더 쉽게 읽을 수 있도록 다양한 서식을 적용한다는 점에 유의하십시오. 자세한 내용은 formatting options 문서를 참조하십시오.
컴파일 시 QT_NO_WARNING_OUTPUT 가 정의된 경우, 이 함수는 아무 작업도 수행하지 않습니다.
디버깅을 위해 경고 메시지가 발생하면 프로그램을 중단시키는 것이 편리한 경우가 있습니다. 이렇게 하면 코어 덤프를 검사하거나 디버거를 연결할 수 있습니다. qFatal()도 참조하십시오. 이 기능을 활성화하려면 환경 변수 QT_FATAL_WARNINGS 을 숫자 n 로 설정하십시오. 그러면 프로그램은 n번째 경고가 발생할 때 종료됩니다. 즉, 환경 변수가 1로 설정되어 있으면 첫 번째 호출 시 종료되고, 값이 10이면 10번째 호출 시 종료됩니다. 환경 변수에 숫자가 아닌 값이 설정되어 있으면 1로 간주됩니다.
참고: 이 매크로는 스레드 안전합니다.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.