⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 conversionscreen.cpp

📁 QT/X11(版本为4.2.2)下的功能丰富(含存储数据,窗口对话,温度转换)的完整代码
💻 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 + -