master
UnknownObject 3 years ago
parent 3cb8a6806a
commit d10dcf6ad0

@ -3,6 +3,8 @@
ClockCounter::ClockCounter(QWidget *parent) : QMainWindow(parent) ClockCounter::ClockCounter(QWidget *parent) : QMainWindow(parent)
{ {
ui.setupUi(this); ui.setupUi(this);
PreClickCount = 0;
PreClickPosition = QPoint(0, 0);
ui.SpliterHourMinute->Init(UDateTimeSpliter::Type::Time); ui.SpliterHourMinute->Init(UDateTimeSpliter::Type::Time);
ui.SpliterMinuteSecond->Init(UDateTimeSpliter::Type::Time); ui.SpliterMinuteSecond->Init(UDateTimeSpliter::Type::Time);
ui.SpliterSecondMS->Init(UDateTimeSpliter::Type::Dots); ui.SpliterSecondMS->Init(UDateTimeSpliter::Type::Dots);
@ -11,7 +13,9 @@ ClockCounter::ClockCounter(QWidget *parent) : QMainWindow(parent)
connect(ui.BtnGetPreclickPos, &QPushButton::clicked, this, &ClockCounter::ShowPreClickWindow); connect(ui.BtnGetPreclickPos, &QPushButton::clicked, this, &ClockCounter::ShowPreClickWindow);
connect(ui.BtnClearPreclickPos, &QPushButton::clicked, this, &ClockCounter::ClearPreClickInfo); connect(ui.BtnClearPreclickPos, &QPushButton::clicked, this, &ClockCounter::ClearPreClickInfo);
connect(&CountTimer, &QTimer::timeout, this, &ClockCounter::CountCallback); connect(&CountTimer, &QTimer::timeout, this, &ClockCounter::CountCallback);
connect(&WindowUpdater, &QTimer::timeout, this, &ClockCounter::WindowUpdateCallback);
CountTimer.setInterval(1); CountTimer.setInterval(1);
WindowUpdater.setInterval(50);
CountTime = 0; CountTime = 0;
} }
@ -44,11 +48,17 @@ void ClockCounter::ShowPreClickWindow()
pre_click_window.show(); pre_click_window.show();
pre_click_window.activateWindow(); pre_click_window.activateWindow();
pre_click_window.setWindowState((pre_click_window.windowState() & ~Qt::WindowMinimized) | Qt::WindowActive); pre_click_window.setWindowState((pre_click_window.windowState() & ~Qt::WindowMinimized) | Qt::WindowActive);
this->hide();
WindowUpdater.start();
} }
} }
void ClockCounter::ClearPreClickInfo() void ClockCounter::ClearPreClickInfo()
{ {
PreClickCount = 0;
PreClickPosition = QPoint(0, 0);
this->setWindowTitle("软件执行计时器");
MessageBox(NULL, L"预点击坐标已清空", L"提示", MB_OK | MB_ICONINFORMATION);
} }
void ClockCounter::CountCallback() void ClockCounter::CountCallback()
@ -69,3 +79,20 @@ void ClockCounter::CountCallback()
ui.NumMillSec03->setNumber((millsecond % 100) % 10); ui.NumMillSec03->setNumber((millsecond % 100) % 10);
return; return;
} }
void ClockCounter::WindowUpdateCallback()
{
if (!pre_click_window.isVisible())
{
WindowUpdater.stop();
this->show();
this->activateWindow();
this->setWindowState((this->windowState() & ~Qt::WindowMinimized) | Qt::WindowActive);
if (pre_click_window.GetWindowStatus())
{
PreClickCount = pre_click_window.GetClickCount();
PreClickPosition = pre_click_window.GetCursorPosition();
this->setWindowTitle("软件执行计时器: 预点击指令已激活");
}
}
}

@ -20,10 +20,14 @@ public slots:
void ShowPreClickWindow(); void ShowPreClickWindow();
void ClearPreClickInfo(); void ClearPreClickInfo();
void CountCallback(); void CountCallback();
void WindowUpdateCallback();
private: private:
time_t CountTime; time_t CountTime;
int PreClickCount;
QTimer CountTimer; QTimer CountTimer;
QTimer WindowUpdater;
QPoint PreClickPosition;
Ui::ClockCounterClass ui; Ui::ClockCounterClass ui;
PreClick pre_click_window; PreClick pre_click_window;
}; };

@ -2,16 +2,40 @@
PreClick::PreClick(QWidget* parent) : QMainWindow(parent) PreClick::PreClick(QWidget* parent) : QMainWindow(parent)
{ {
ClickCount = 1;
WindowStatus = false;
CursorPosition = QPoint(0, 0);
ui.setupUi(this); ui.setupUi(this);
ui.ClickCount->setValue(1);
ui.ClickCount->setMinimum(1);
ui.ClickCount->setMaximum(10);
connect(ui.BtnGetPos, &QPushButton::clicked, this, &PreClick::StartCursorTrack); connect(ui.BtnGetPos, &QPushButton::clicked, this, &PreClick::StartCursorTrack);
connect(ui.BtnOK, &QPushButton::clicked, this, &PreClick::OnBnClickedOK);
connect(ui.BtnCancel, &QPushButton::clicked, this, &PreClick::OnBnClickedCancel);
connect(&CursorUpdate, &QTimer::timeout, this, &PreClick::UpdateCursorPosition); connect(&CursorUpdate, &QTimer::timeout, this, &PreClick::UpdateCursorPosition);
CursorUpdate.setInterval(50); CursorUpdate.setInterval(50);
this->grabKeyboard();
} }
PreClick::~PreClick() PreClick::~PreClick()
{ {
} }
bool PreClick::GetWindowStatus()
{
return WindowStatus;
}
int PreClick::GetClickCount()
{
return ClickCount;
}
QPoint PreClick::GetCursorPosition()
{
return CursorPosition;
}
void PreClick::UpdateCursorPosition() void PreClick::UpdateCursorPosition()
{ {
POINT point; POINT point;
@ -29,7 +53,36 @@ void PreClick::StartCursorTrack()
} }
else else
{ {
CursorUpdate.stop(); CursorUpdate.start();
ui.BtnGetPos->setText("停止获取"); ui.BtnGetPos->setText("停止获取");
} }
} }
void PreClick::OnBnClickedOK()
{
CursorPosition = QPoint(ui.PosX->toPlainText().toInt(), ui.PosY->toPlainText().toInt());
ClickCount = ui.ClickCount->value();
WindowStatus = true;
this->hide();
}
void PreClick::OnBnClickedCancel()
{
WindowStatus = false;
this->hide();
}
void PreClick::keyPressEvent(QKeyEvent* event)
{
if ((event->key() == Qt::Key_Space) && CursorUpdate.isActive())
{
CursorUpdate.stop();
ui.BtnGetPos->setText("获取坐标");
}
}
void PreClick::closeEvent(QCloseEvent* event)
{
this->hide();
event->ignore();
}

@ -3,6 +3,8 @@
#include "ui_PreClick.h" #include "ui_PreClick.h"
#include <QTimer> #include <QTimer>
#include <Windows.h> #include <Windows.h>
#include <QKeyEvent>
#include <QCloseEvent>
class PreClick : public QMainWindow class PreClick : public QMainWindow
{ {
@ -12,12 +14,26 @@ public:
PreClick(QWidget* parent = nullptr); PreClick(QWidget* parent = nullptr);
~PreClick(); ~PreClick();
public:
bool GetWindowStatus();
int GetClickCount();
QPoint GetCursorPosition();
public slots: public slots:
void UpdateCursorPosition(); void UpdateCursorPosition();
void StartCursorTrack(); void StartCursorTrack();
void OnBnClickedOK();
void OnBnClickedCancel();
protected:
void keyPressEvent(QKeyEvent* event) override;
void closeEvent(QCloseEvent* event) override;
private: private:
QTimer CursorUpdate; QTimer CursorUpdate;
Ui::PreClickWindow ui; Ui::PreClickWindow ui;
QPoint CursorPosition;
int ClickCount;
bool WindowStatus;
}; };

@ -29,7 +29,7 @@ private:
QColor TextColor2; QColor TextColor2;
QColor Background1; QColor Background1;
QColor Background2; QColor Background2;
const int DotSpace = 20; const int DotSpace = 14;
const int DateSpace = 20; const int DateSpace = 20;
const int TimeSpace = 20; const int TimeSpace = 20;
const int DateSpliterLineSize = 10; const int DateSpliterLineSize = 10;

Loading…
Cancel
Save