System Information Example
Files:
- sysinfo/dialog.cpp
- sysinfo/dialog.h
- sysinfo/dialog.ui
- sysinfo/dialog_landscape.ui
- sysinfo/dialog_s60.ui
- sysinfo/main.cpp
- sysinfo/examples.qrc
- sysinfo/sysinfo.pro

The System Information example uses a tabbed dialog, with each tab representing a particular type of data: versions, network and so on.
To access the information, the example creates objects belonging to the System Information classes
Access to device information from the system | |
Access to display information from the system | |
Access to various general information from the system | |
Access to network information from the system | |
Access to screen saver and blanking | |
Access to memory and disk information from the system |
Here are some examples that show how the example application reads the device information.
The current language
systemInfo = new QSystemInfo(this);
curLanguageLineEdit->setText( systemInfo->currentLanguage());
Device information, starting with the battery level
di = new QSystemDeviceInfo(this);
...
batteryLevelBar->setValue(di->batteryLevel());
The manufacturer id and the product name
manufacturerLabel->setText(di->manufacturer());
...
productLabel->setText(di->productName());
And there are signals that can be used to update progress bars and other indicators. An example is when the battery level changes, the batteryLevelChanged() signal is emitted
connect(di,SIGNAL(batteryLevelChanged(int)),
this,SLOT(updateBatteryStatus(int)));
Other information is stored as bitwise flags. The following code shows the input methods being determined using flags.
QSystemDeviceInfo::InputMethodFlags methods = di->inputMethodType();
QStringList inputs;
if((methods & QSystemDeviceInfo::Keys)){
inputs << "Keys";
}
if((methods & QSystemDeviceInfo::Keypad)) {
inputs << "Keypad";
}
Various capabilities of the device can be found by testing for features. In the example a Feature combo box, on the General tab, has a hard coded list of features. When a listed feature is selected the getFeature() function is called with the index which is handled by applying a test to the corresponding feature.
QSystemInfo::Feature feature;
switch(index) {
...
case 1:
feature = QSystemInfo::BluetoothFeature;
...
QSystemInfo si;
featuresLineEdit->setText((si.hasFeatureSupported(feature) ? "true":"false" ));