21 void MainWindow::quit()
26 void MainWindow::takeScreenshot()
28 QPixmap screen = this->grab();
30 QDir directory(qApp->applicationDirPath());
31 QStringList filesInDir = directory.entryList();
32 QString baseName = QDate::currentDate().toString().remove(
" ");
34 if (filesInDir.contains(baseName+
".png")) {
36 while (filesInDir.contains(QString(baseName+
"%1.png").arg(ii))) {
39 baseName += QString::number(ii);
42 screen.save(baseName);
49 void MainWindow::setupComponents()
58 quitButton =
new QPushButton(tr(
"Quit"));
60 quitButton->setMinimumHeight(64);
61 quitButton->setMaximumHeight(64);
64 screenShotButton =
new QPushButton(tr(
"Take snapshot"));
65 screenShotButton->show();
66 screenShotButton->setMinimumHeight(64);
67 screenShotButton->setMaximumHeight(64);
70 stackedWidget =
new QStackedWidget();
71 stackedWidget->addWidget(homePageWidget);
72 stackedWidget->addWidget(ecgPlotWidget);
73 stackedWidget->addWidget(plottingWidget);
74 stackedWidget->addWidget(settingsWidget);
75 stackedWidget->addWidget(hrvWidget);
76 stackedWidget->addWidget(bluetoothWidget);
79 QListWidgetItem *homeListWidgetItem =
new QListWidgetItem;
80 homeListWidgetItem->setText(
"Start");
81 homeListWidgetItem->setIcon(QIcon(
":/images/images/go-home.png"));
83 QListWidgetItem *plotCaptureListWidgetItem =
new QListWidgetItem;
84 plotCaptureListWidgetItem->setText(
"ECG capture");
85 plotCaptureListWidgetItem->setIcon(QIcon(
":/images/images/emblem-favorite.png"));
87 QListWidgetItem *ecgViewListWidgetItem =
new QListWidgetItem;
88 ecgViewListWidgetItem->setText(
"View ECG");
89 ecgViewListWidgetItem->setIcon(QIcon(
":/images/images/media-playback-start-4.png"));
91 QListWidgetItem *settingsListWidgetItem =
new QListWidgetItem;
92 settingsListWidgetItem->setText(
"Settings");
93 settingsListWidgetItem->setIcon(QIcon(
":/images/images/emblem-system-2.png"));
95 QListWidgetItem *hrvListWidgetItem =
new QListWidgetItem;
96 hrvListWidgetItem->setText(
"HRV");
97 hrvListWidgetItem->setIcon(QIcon(
":/images/images/emblem-system-2.png"));
99 QListWidgetItem *bluetoothWidgetItem =
new QListWidgetItem;
100 bluetoothWidgetItem->setText(
"Bluetooth Transfer");
101 bluetoothWidgetItem->setIcon(QIcon(
":/images/images/emblem-favorite.png"));
104 listWidget =
new QListWidget();
105 listWidget->addItem(homeListWidgetItem);
106 listWidget->addItem(plotCaptureListWidgetItem);
107 listWidget->addItem(ecgViewListWidgetItem);
108 listWidget->addItem(settingsListWidgetItem);
109 listWidget->addItem(hrvListWidgetItem);
110 listWidget->addItem(bluetoothWidgetItem);
111 listWidget->setIconSize(QSize(48,48));
112 listWidget->setFlow(QListWidget::LeftToRight);
113 listWidget->setMaximumHeight(64);
114 listWidget->setUniformItemSizes(
false);
117 void MainWindow::setupActions()
120 connect(listWidget, SIGNAL(currentRowChanged(
int)), stackedWidget, SLOT(setCurrentIndex(
int)));
121 connect(quitButton, SIGNAL(clicked()),
this, SLOT(quit()));
122 connect(screenShotButton, SIGNAL(clicked()),
this, SLOT(takeScreenshot()));
125 void MainWindow::setupLayout()
127 QHBoxLayout *sidebarLayout =
new QHBoxLayout;
128 sidebarLayout->addWidget(listWidget);
129 sidebarLayout->addWidget(screenShotButton);
130 sidebarLayout->addWidget(quitButton);
132 QVBoxLayout *mainLayout =
new QVBoxLayout;
133 mainLayout->addWidget(stackedWidget);
134 mainLayout->addLayout(sidebarLayout);
136 setLayout(mainLayout);
Startpage for the Biosignal PI software.
MainWindow(QWidget *=NULL)