彻底改版2.0

This commit is contained in:
feiyangqingyun
2021-11-17 16:41:30 +08:00
parent a7f4347959
commit ebfd531a91
2622 changed files with 8915 additions and 7263 deletions

66
tool/livedemo/applive.cpp Normal file
View File

@@ -0,0 +1,66 @@
#include "applive.h"
#include "qmutex.h"
#include "qudpsocket.h"
#include "qstringlist.h"
#include "qapplication.h"
#include "qdatetime.h"
#include "qdebug.h"
#define TIMEMS qPrintable(QTime::currentTime().toString("HH:mm:ss zzz"))
QScopedPointer<AppLive> AppLive::self;
AppLive *AppLive::Instance()
{
if (self.isNull()) {
QMutex mutex;
QMutexLocker locker(&mutex);
if (self.isNull()) {
self.reset(new AppLive);
}
}
return self.data();
}
AppLive::AppLive(QObject *parent) : QObject(parent)
{
udpServer = new QUdpSocket(this);
QString name = qApp->applicationFilePath();
QStringList list = name.split("/");
appName = list.at(list.count() - 1).split(".").at(0);
}
void AppLive::readData()
{
QByteArray tempData;
do {
tempData.resize(udpServer->pendingDatagramSize());
QHostAddress sender;
quint16 senderPort;
udpServer->readDatagram(tempData.data(), tempData.size(), &sender, &senderPort);
QString data = QLatin1String(tempData);
if (data == "hello") {
udpServer->writeDatagram(QString("%1OK").arg(appName).toLatin1(), sender, senderPort);
}
} while (udpServer->hasPendingDatagrams());
}
bool AppLive::start(int port)
{
bool ok = udpServer->bind(port);
if (ok) {
connect(udpServer, SIGNAL(readyRead()), this, SLOT(readData()));
qDebug() << TIMEMS << "Start AppLive Ok";
}
return ok;
}
void AppLive::stop()
{
udpServer->abort();
disconnect(udpServer, SIGNAL(readyRead()), this, SLOT(readData()));
}

28
tool/livedemo/applive.h Normal file
View File

@@ -0,0 +1,28 @@
#ifndef APPLIVE_H
#define APPLIVE_H
#include <QObject>
class QUdpSocket;
class AppLive : public QObject
{
Q_OBJECT
public:
static AppLive *Instance();
explicit AppLive(QObject *parent = 0);
private:
static QScopedPointer<AppLive> self;
QUdpSocket *udpServer;
QString appName;
private slots:
void readData();
public slots:
bool start(int port);
void stop();
};
#endif // APPLIVE_H

12
tool/livedemo/frmmain.cpp Normal file
View File

@@ -0,0 +1,12 @@
#include "frmmain.h"
#include "ui_frmmain.h"
frmMain::frmMain(QWidget *parent) : QWidget(parent), ui(new Ui::frmMain)
{
ui->setupUi(this);
}
frmMain::~frmMain()
{
delete ui;
}

22
tool/livedemo/frmmain.h Normal file
View File

@@ -0,0 +1,22 @@
#ifndef FRMMAIN_H
#define FRMMAIN_H
#include <QWidget>
namespace Ui {
class frmMain;
}
class frmMain : public QWidget
{
Q_OBJECT
public:
explicit frmMain(QWidget *parent = 0);
~frmMain();
private:
Ui::frmMain *ui;
};
#endif // FRMMAIN_H

21
tool/livedemo/frmmain.ui Normal file
View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>frmMain</class>
<widget class="QWidget" name="frmMain">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>frmMain</string>
</property>
<layout class="QGridLayout" name="gridLayout"/>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,18 @@
QT += core gui network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
greaterThan(QT_MAJOR_VERSION, 5): QT += core5compat
TARGET = livedemo
TEMPLATE = app
MOC_DIR = temp/moc
RCC_DIR = temp/rcc
UI_DIR = temp/ui
OBJECTS_DIR = temp/obj
DESTDIR = $$PWD/../bin
CONFIG += warn_off
SOURCES += main.cpp
SOURCES += frmmain.cpp applive.cpp
HEADERS += frmmain.h applive.h
FORMS += frmmain.ui

34
tool/livedemo/main.cpp Normal file
View File

@@ -0,0 +1,34 @@
#pragma execution_character_set("utf-8")
#include "frmmain.h"
#include "applive.h"
#include <QApplication>
#include <QTextCodec>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
a.setFont(QFont("Microsoft Yahei", 9));
#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0))
#if _MSC_VER
QTextCodec *codec = QTextCodec::codecForName("gbk");
#else
QTextCodec *codec = QTextCodec::codecForName("utf-8");
#endif
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(codec);
#else
QTextCodec *codec = QTextCodec::codecForName("utf-8");
QTextCodec::setCodecForLocale(codec);
#endif
//启动守护程序服务类
AppLive::Instance()->start(6666);
frmMain w;
w.setWindowTitle("守护程序使用示例");
w.show();
return a.exec();
}