📄 fah.cpp
字号:
#include <QPushButton>#include <QDial>#include <QLCDNumber>#include <QVBoxLayout>#include <QApplication>#include <QCopChannel>#include <QDataStream>#include <QByteArray>#include "Fah.h"Fah::Fah() : QWidget(){ createScreen(); listenChannel();}void Fah::createScreen(){ QPushButton* quitBtn = new QPushButton("Quit"); createFah(); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(quitBtn); mainLayout->addLayout(fahLayout); setLayout(mainLayout); dial->setFocus(); connect(quitBtn, SIGNAL(clicked()), qApp, SLOT(quit())); setWindowTitle("Fahrenheit");}void Fah::createFah(){ QLCDNumber* lcdNum = new QLCDNumber(3); lcdNum->setSegmentStyle(QLCDNumber::Filled); lcdNum->display(32); dial = new QDial; dial->setRange(32, 212); dial->setValue(32); 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(sendMsg(int)));}void Fah::celToFah(int celNum){ int fahNum = (celNum * 9 / 5) + 32; dial->setValue(fahNum);}void Fah::listenChannel(){ QCopChannel *channel = new QCopChannel("/System/Temperature", this); connect(channel, SIGNAL(received(const QString &, const QByteArray &)), this, SLOT(handleMsg(const QString &, const QByteArray &)));}void Fah::handleMsg(const QString &message, const QByteArray &data){ QDataStream in(data); if (message == "ConvertCelToFah(int)") { int celNum; in >> celNum; celToFah(celNum); }}void Fah::sendMsg(int fahNum){ QByteArray data; QDataStream out(&data, QIODevice::WriteOnly); out << fahNum; QCopChannel::send("/System/Temperature", "ConvertFahToCel(int)", data);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -