O'Reilly logo

Programming with Qt, 2nd Edition by Matthias Kalle Dalheimer

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 13. Interfacing with the Operating System

In this chapter, we will cover some tasks that are inherently unportable, but for which Qt provides portable abstractions that shield your application programs from the operating system APIs. More precisely, we will cover working with date and time values, dynamically loading code libraries, starting other processes and possibly capturing these processes’ output, and finally playing simple sounds.

Working with Date and Time Values

Date and time values are inherently hard to make portable. Therefore, it’s a good idea to use the classes provided by Qt when you work with this kind of data.

Three Qt classes are in this area: QDate, QTime, and QDateTime. Their purposes are obvious: QDate encapsulates a date value, QTime encapsulates a time value, and QDateTime encapsulates both. You can pass either the scalar values that make up a date (day, month, and year) or a time value (hour, minute, and optional second and millisecond), or set these values later.

For computations with date and time values, use the methods QTime::addSecs(), QTime::addMSecs(), QDate:addDays(), QDateTime::addSecs(), and QDateTime::addDays(). There are also many comparison operators, and you can stream date and time values to and from QDataStream streams.

Getting the current time and date is a popular feature. All three classes provide static methods for this: QDate::currentDate(), QTime::currentTime(), and QDateTime::currentDateTime().

QTime can also be used as ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required