Files:
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 | |
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); ... int level = di->batteryLevel(); batteryLevelBar->setValue(level); lcdNumber->display(level);
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" ));