update #3
This commit is contained in:
@@ -3,6 +3,8 @@
|
||||
ClockCounter::ClockCounter(QWidget *parent) : QMainWindow(parent)
|
||||
{
|
||||
ui.setupUi(this);
|
||||
PreClickCount = 0;
|
||||
PreClickPosition = QPoint(0, 0);
|
||||
ui.SpliterHourMinute->Init(UDateTimeSpliter::Type::Time);
|
||||
ui.SpliterMinuteSecond->Init(UDateTimeSpliter::Type::Time);
|
||||
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.BtnClearPreclickPos, &QPushButton::clicked, this, &ClockCounter::ClearPreClickInfo);
|
||||
connect(&CountTimer, &QTimer::timeout, this, &ClockCounter::CountCallback);
|
||||
connect(&WindowUpdater, &QTimer::timeout, this, &ClockCounter::WindowUpdateCallback);
|
||||
CountTimer.setInterval(1);
|
||||
WindowUpdater.setInterval(50);
|
||||
CountTime = 0;
|
||||
}
|
||||
|
||||
@@ -44,11 +48,17 @@ void ClockCounter::ShowPreClickWindow()
|
||||
pre_click_window.show();
|
||||
pre_click_window.activateWindow();
|
||||
pre_click_window.setWindowState((pre_click_window.windowState() & ~Qt::WindowMinimized) | Qt::WindowActive);
|
||||
this->hide();
|
||||
WindowUpdater.start();
|
||||
}
|
||||
}
|
||||
|
||||
void ClockCounter::ClearPreClickInfo()
|
||||
{
|
||||
PreClickCount = 0;
|
||||
PreClickPosition = QPoint(0, 0);
|
||||
this->setWindowTitle("软件执行计时器");
|
||||
MessageBox(NULL, L"预点击坐标已清空", L"提示", MB_OK | MB_ICONINFORMATION);
|
||||
}
|
||||
|
||||
void ClockCounter::CountCallback()
|
||||
@@ -69,3 +79,20 @@ void ClockCounter::CountCallback()
|
||||
ui.NumMillSec03->setNumber((millsecond % 100) % 10);
|
||||
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 ClearPreClickInfo();
|
||||
void CountCallback();
|
||||
void WindowUpdateCallback();
|
||||
|
||||
private:
|
||||
time_t CountTime;
|
||||
int PreClickCount;
|
||||
QTimer CountTimer;
|
||||
QTimer WindowUpdater;
|
||||
QPoint PreClickPosition;
|
||||
Ui::ClockCounterClass ui;
|
||||
PreClick pre_click_window;
|
||||
};
|
||||
|
||||
@@ -2,16 +2,40 @@
|
||||
|
||||
PreClick::PreClick(QWidget* parent) : QMainWindow(parent)
|
||||
{
|
||||
ClickCount = 1;
|
||||
WindowStatus = false;
|
||||
CursorPosition = QPoint(0, 0);
|
||||
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.BtnOK, &QPushButton::clicked, this, &PreClick::OnBnClickedOK);
|
||||
connect(ui.BtnCancel, &QPushButton::clicked, this, &PreClick::OnBnClickedCancel);
|
||||
connect(&CursorUpdate, &QTimer::timeout, this, &PreClick::UpdateCursorPosition);
|
||||
CursorUpdate.setInterval(50);
|
||||
this->grabKeyboard();
|
||||
}
|
||||
|
||||
PreClick::~PreClick()
|
||||
{
|
||||
}
|
||||
|
||||
bool PreClick::GetWindowStatus()
|
||||
{
|
||||
return WindowStatus;
|
||||
}
|
||||
|
||||
int PreClick::GetClickCount()
|
||||
{
|
||||
return ClickCount;
|
||||
}
|
||||
|
||||
QPoint PreClick::GetCursorPosition()
|
||||
{
|
||||
return CursorPosition;
|
||||
}
|
||||
|
||||
void PreClick::UpdateCursorPosition()
|
||||
{
|
||||
POINT point;
|
||||
@@ -29,7 +53,36 @@ void PreClick::StartCursorTrack()
|
||||
}
|
||||
else
|
||||
{
|
||||
CursorUpdate.stop();
|
||||
CursorUpdate.start();
|
||||
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 <QTimer>
|
||||
#include <Windows.h>
|
||||
#include <QKeyEvent>
|
||||
#include <QCloseEvent>
|
||||
|
||||
class PreClick : public QMainWindow
|
||||
{
|
||||
@@ -12,12 +14,26 @@ public:
|
||||
PreClick(QWidget* parent = nullptr);
|
||||
~PreClick();
|
||||
|
||||
public:
|
||||
bool GetWindowStatus();
|
||||
int GetClickCount();
|
||||
QPoint GetCursorPosition();
|
||||
|
||||
public slots:
|
||||
void UpdateCursorPosition();
|
||||
void StartCursorTrack();
|
||||
void OnBnClickedOK();
|
||||
void OnBnClickedCancel();
|
||||
|
||||
protected:
|
||||
void keyPressEvent(QKeyEvent* event) override;
|
||||
void closeEvent(QCloseEvent* event) override;
|
||||
|
||||
private:
|
||||
QTimer CursorUpdate;
|
||||
Ui::PreClickWindow ui;
|
||||
QPoint CursorPosition;
|
||||
int ClickCount;
|
||||
bool WindowStatus;
|
||||
};
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ private:
|
||||
QColor TextColor2;
|
||||
QColor Background1;
|
||||
QColor Background2;
|
||||
const int DotSpace = 20;
|
||||
const int DotSpace = 14;
|
||||
const int DateSpace = 20;
|
||||
const int TimeSpace = 20;
|
||||
const int DateSpliterLineSize = 10;
|
||||
|
||||
Reference in New Issue
Block a user