我正在使用QT IDE为我的(曾经工作过的)命令行自动点击器制作一个更好看的版本。
请注意,点击仍然效果很好......功能不会受到影响。
但是,当“更新”表单本身的文本字段时会出现问题。
在我的代码中,您可以看到按下“Q”按钮,结束循环。此时,文本字段将更新(因为它们应该在循环期间连续)。我真的不确定为什么他们没有更新,直到我点击'Q'。是否有任何理由不应该像我认为的那样工作,或者有办法解决它?
感谢。请参阅下面的代码。请注意,我只会包含我认为必要的部分。根据要求,我可以发布更多代码。
CODE.cpp
bool running = 1;
float x = 1500;
float interval;
int breakCounter = 0;
float breakSeconds = 0;
int clicks = 0;
Sleep (3000);
while (running == 1)
{
float breakChance = (rand()%650+1);
if (breakChance == 100){
breakCounter++;
float breakTime = (rand()%180+1);
breakTime = (breakTime + 60) * 1000;
breakSeconds = breakSeconds + breakTime/1000;
QString a = QString::number(breakCounter);
QString b = QString::number(breakSeconds/60);
QString c = QString::number(breakTime/1000);
ui->label_6->setText(a);
ui->label_7->setText(b + " mins");
ui->label_8->setText(c);
ui->label_9->setText("N/A");
Sleep (breakTime);
} else {
float variance = (rand()%500+1);
int flip = (rand()%2+1);
if (flip == 1){
interval = x + variance;
} else {
interval = x - variance;
}
QString a = QString::number(breakCounter);
QString b = QString::number(breakSeconds/60);
QString d = QString::number(interval);
ui->label_6->setText(a);
ui->label_7->setText(b + " mins");
ui->label_8->setText("N/A");
ui->label_9->setText(d);
Sleep (interval);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
Sleep (100);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
clicks++;
if (GetAsyncKeyState( 'Q' ))
{
running = 0;
}
}
}
CODE.ui
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="label_4">
<property name="text">
<string>Current break timer:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_8">
<property name="text">
<string>N/A</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QLabel" name="label_5">
<property name="text">
<string>Next click time:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_9">
<property name="text">
<string>N/A</string>
</property>
</widget>
</item>
</layout>
</item>
答案 0 :(得分:2)
如果你想要延迟......这样做的方法是使用QTimer。说出你的代码需要多长时间,直到你的代码下次运行,退出你的代码,并让消息泵在时间流逝时有机会运行。