#include "screenchecker.h" #include ScreenChecker::ScreenChecker(DataParser *dataParser, QHBoxLayout *layout, QObject *parent) : QObject(parent) { screenCount = 0; this->layout = layout; this->dataParser = dataParser; } void ScreenChecker::Check() { screens = QGuiApplication::screens(); for (int i = 0; i < screens.size();i++) { QScreen *display = screens[i]; qDebug() << screens[i]->name(); screenCount++; QString sizeText = QString::number(display->size().width()) + "x" + QString::number(display->size().height()); sizeText.append("\n"); sizeText.append(QString::number(display->refreshRate()) + "Hz"); QPushButton *button = new QPushButton(sizeText); buttons.append(button); layout->addWidget(button); float width = display->size().width(); float height = display->size().height(); float ratio = width / height; QSize *sizeResult; if(height > width){ sizeResult = new QSize(90,90 / ratio); }else{ sizeResult = new QSize(150,150 / ratio); } button->setMinimumSize(*sizeResult); button->setMaximumSize(*sizeResult); button->setCheckable(true); connect(button,&QPushButton::clicked,this,&ScreenChecker::UpdateDisplayData); if(i == 0){ button->setChecked(true); button->setFlat(true); QPalette palette= button->palette(); button->setEnabled(false); palette.setColor(QPalette::Background,QColor(Qt::blue)); palette.setColor(QPalette::ButtonText,QColor(Qt::black)); button->setPalette(palette); } } UpdateDisplayData(); } void ScreenChecker::UpdateDisplayData() { QList *displays = new QList; for (int i = 0; i isChecked()){ displays->append(i); } } dataParser->AddRunData(*displays); } QString ScreenChecker::getScreenCount() const { return QString::number(screenCount); } ScreenChecker::~ScreenChecker() { for (int i = 0; i < buttons.size(); i++) { delete buttons[i]; } }