QT 按钮类继承处理带定时器

01.class KeyButton : public QPushButton  
02.{  
03.    Q_OBJECT  
04.public:  
05.    explicit KeyButton(QWidget *parent = 0) : QPushButton(parent),  
06.        pauseMsecs(400), intervalMsecs(30)  
07.    {  
08.        tm = new QTimer(this);  
09.        connect(tm, SIGNAL(timeout()), this, SLOT(on_pressed_last()));  
10.        connect(this, SIGNAL(pressed()), this, SLOT(on_pressed()));  
11.        connect(this, SIGNAL(released()), this, SLOT(on_released()));  
12.        connect(this, SIGNAL(clicked()), this, SLOT(on_clicked()));  
13.    }  
14.  
15.private:  
16.    QTimer *tm;  
17.    long pauseMsecs;  
18.    long intervalMsecs;  
19.  
20.signals:  
21.    void keyPressed(const QString &msg);  
22.    void keyReleased(const QString &msg);  
23.    void keyClicked(const QString &msg);  
24.  
25.public slots:  
26.    void on_pressed() { emit this->keyPressed(this->text());  
27.                        tm->start(pauseMsecs); }  
28.    void on_pressed_last() { emit this->keyPressed(this->text());  
29.                             tm->setInterval(intervalMsecs); }  
30.    void on_released() { tm->stop(); emit this->keyReleased(this->text()); }  
31.    void on_clicked() { emit this->keyClicked(this->text()); }  
32.};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本系统的研发具有重大的意义,在安全性方面,用户使用浏览器访问网站时,采用注册和密码等相关的保护措施,提高系统的可靠性,维护用户的个人信息和财产的安全。在方便性方面,促进了校园失物招领网站的信息化建设,极大的方便了相关的工作人员对校园失物招领网站信息进行管理。 本系统主要通过使用Java语言编码设计系统功能,MySQL数据库管理数据,AJAX技术设计简洁的、友好的网址页面,然后在IDEA开发平台中,编写相关的Java代码文件,接着通过连接语言完成与数据库的搭建工作,再通过平台提供的Tomcat插件完成信息的交互,最后在浏览器中打开系统网址便可使用本系统。本系统的使用角色可以被分为用户和管理员,用户具有注册、查看信息、留言信息等功能,管理员具有修改用户信息,发布寻物启事等功能。 管理员可以选择任一浏览器打开网址,输入信息无误后,以管理员的身份行使相关的管理权限。管理员可以通过选择失物招领管理,管理相关的失物招领信息记录,比如进行查看失物招领信息标题,修改失物招领信息来源等操作。管理员可以通过选择公告管理,管理相关的公告信息记录,比如进行查看公告详情,删除错误的公告信息,发布公告等操作。管理员可以通过选择公告型管理,管理相关的公告型信息,比如查看所有公告型,删除无用公告型,修改公告型,添加公告型等操作。寻物启事管理页面,此页面提供给管理员的功能有:新增寻物启事,修改寻物启事,删除寻物启事。物品型管理页面,此页面提供给管理员的功能有:新增物品型,修改物品型,删除物品型。
Qt中,可以通过信号与槽机制将定时器与开始按钮连接起来。以下是一个示例代码,演示了如何实现这个连接: ```cpp #include <QtWidgets> class ChessGame : public QWidget { Q_OBJECT public: ChessGame(QWidget *parent = nullptr) : QWidget(parent) { // 创建定时器 timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(onTimerTimeout())); // 创建开始按钮 startButton = new QPushButton("开始", this); connect(startButton, SIGNAL(clicked()), this, SLOT(onStartButtonClicked())); } public slots: void onTimerTimeout() { // 定时器超时时执行的操作 // 这里可以编写处理定时器事件的代码 } void onStartButtonClicked() { // 开始按钮被点击时执行的操作 // 这里可以编写启动定时器的代码 timer->start(1000); // 每隔1秒触发一次定时器超时事件 } private: QTimer *timer; QPushButton *startButton; }; int main(int argc, char *argv[]) { QApplication app(argc, argv); ChessGame game; game.show(); return app.exec(); } #include "main.moc" ``` 在该示例中,`ChessGame` 是一个继承自 `QWidget` 的自定义窗口部件。其中,`timer` 是一个定时器对象,`startButton` 是一个开始按钮对象。在 `ChessGame` 的构造函数中,我们创建了定时器和开始按钮,并通过 `connect` 函数将定时器的 `timeout` 信号与 `onTimerTimeout` 槽函数连接起来,将开始按钮的 `clicked` 信号与 `onStartButtonClicked` 槽函数连接起来。 在 `onTimerTimeout` 槽函数中,可以编写定时器超时时执行的操作。在 `onStartButtonClicked` 槽函数中,可以编写启动定时器的代码。在该示例中,我们设置定时器每隔1秒触发一次定时器超时事件。 上述示例代码可以通过 Qt 的编译器进行编译运行,并在窗口中显示一个开始按钮。当点击开始按钮时,定时器将开始计时,并每隔1秒触发一次定时器超时事件。你可以根据实际需求在 `onTimerTimeout` 槽函数中编写相应的代码来实现定时器的具体功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值