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 ...

Get Programming with Qt, 2nd Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.