?? conversionscreen.cpp
字號:
#include <QPushButton>#include <QSlider>#include <QLabel>#include <QDial>#include <QLCDNumber>#include <QVBoxLayout>#include <QHBoxLayout>#include <QGridLayout>#include <QSettings>#include <QApplication>#include <QCoreApplication>#include "ConversionScreen.h"ConversionScreen::ConversionScreen() : QWidget(){ initSettings(); readSettings(); createScreen();}void ConversionScreen::createScreen(){ QPushButton* quitBtn = new QPushButton("Quit"); QPushButton* saveBtn = new QPushButton("Save"); createCel(); createFah(); QGridLayout *mainLayout = new QGridLayout; mainLayout->addWidget(quitBtn, 0, 0); mainLayout->addWidget(saveBtn, 0, 1); mainLayout->addLayout(celLayout, 1, 0); mainLayout->addLayout(fahLayout, 1, 1); mainLayout->setSpacing(40); mainLayout->setMargin(40); setLayout(mainLayout); slider->setFocus(); connect(quitBtn, SIGNAL(clicked()), qApp, SLOT(quit())); connect(saveBtn, SIGNAL(clicked()), this, SLOT(saveSettings())); setWindowTitle("Temperature Conversion");}void ConversionScreen::createCel(){ slider = new QSlider(Qt::Vertical); slider->setRange(0, 100); slider->setValue(currentCelNum); slider->setTickPosition(QSlider::TicksLeft); QLabel* celLabel = new QLabel(QString::number(currentCelNum)); celLayout = new QHBoxLayout; celLayout->addWidget(celLabel, 0, Qt::AlignRight); celLayout->addWidget(slider, 0, Qt::AlignLeft); celLayout->setSpacing(10); connect(slider, SIGNAL(valueChanged(int)), celLabel, SLOT(setNum(int))); connect(slider, SIGNAL(valueChanged(int)), this, SLOT(celToFah(int)));}void ConversionScreen::createFah(){ QLCDNumber* lcdNum = new QLCDNumber(3); lcdNum->setSegmentStyle(QLCDNumber::Filled); lcdNum->display(currentFahNum); dial = new QDial; dial->setRange(32, 212); dial->setValue(currentFahNum); dial->setNotchesVisible(true); fahLayout = new QVBoxLayout; fahLayout->addWidget(lcdNum, 0, Qt::AlignBottom | Qt::AlignHCenter); fahLayout->addWidget(dial); fahLayout->setSpacing(10); connect(dial, SIGNAL(valueChanged(int)), lcdNum, SLOT(display(int))); connect(dial, SIGNAL(valueChanged(int)), this, SLOT(fahToCel(int)));}void ConversionScreen::celToFah(int celNum){ int fahNum = (celNum * 9 / 5) + 32; dial->setValue(fahNum);}void ConversionScreen::fahToCel(int fahNum){ int celNum = (fahNum - 32) * 5 / 9; slider->setValue(celNum);}void ConversionScreen::initSettings(){ QCoreApplication::setOrganizationName("MySoft"); QCoreApplication::setApplicationName("Conversion");}void ConversionScreen::saveSettings(){ currentCelNum = slider->value(); currentFahNum = dial->value(); QSettings settings; settings.setValue("Temperature/CelNumber", currentCelNum); settings.setValue("Temperature/FahNumber", currentFahNum);}void ConversionScreen::readSettings(){ QSettings settings; currentCelNum = settings.value("Temperature/CelNumber", 0).toInt(); currentFahNum = settings.value("Temperature/FahNumber", 32).toInt();}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -