欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > Linux上位机开发实战(按钮响应)

Linux上位机开发实战(按钮响应)

2025/3/16 18:52:52 来源:https://blog.csdn.net/feixiaoxing/article/details/146236992  浏览:    关键词:Linux上位机开发实战(按钮响应)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        大部分GUI库都会有一个基础功能,那就是怎么把button和回调函数bind在一起。在qt里面,这部分是通过槽函数来实现的。主要的操作方法肯定是这样的,首先用qt designer画出两个控件。其实创建两个槽函数,也就是两个回调函数。最后通过connect函数,把控件和回调函数bind在一起。这样,当我们点击button的时候,就可以进入到这个回调函数里面。

1、创建两个按钮

        这一步操作比较简单,就是直接qt designer里面拖两个控件。在ui上面,生成的脚本是这样的,

   <widget class="QPushButton" name="pushButton"><property name="geometry"><rect><x>140</x><y>220</y><width>93</width><height>28</height></rect></property><property name="text"><string>Calculate</string></property></widget><widget class="QPushButton" name="pushButton_2"><property name="geometry"><rect><x>290</x><y>220</y><width>93</width><height>28</height></rect></property><property name="text"><string>Clean</string></property></widget>

2、创建回调函数

        创建回调函数,有一个特别的关键字,就是slots。也就是说,slots后面定义的函数就是回调函数。和控件操作相关的函数,一般都会被定义为槽函数。后面我们会用到的timer定时器,相关函数也是槽函数。

#include <QtWidgets/QMainWindow>
#include "ui_QtWidgetsApplication.h"class QtWidgetsApplication : public QMainWindow
{Q_OBJECTpublic:QtWidgetsApplication(QWidget *parent = nullptr);~QtWidgetsApplication();private:Ui::QtWidgetsApplicationClass ui;private slots:void on_calculate_clicked();void on_clean_clicked();
};

        至于实现部分,那就是行礼如仪,按照正常的函数去实现就好了,

void QtWidgetsApplication::on_calculate_clicked() 
{QString text1;QString text2;text1 = ui.lineEdit->text();if (text1 == ""){QMessageBox::information(this, "tip", "Please input data1!");return;}text2 = ui.lineEdit_2->text();if (text2 == ""){QMessageBox::information(this, "tip", "Please input data2!");return;}int data1 = text1.toInt();int data2 = text2.toInt();data2 *= data1;QMessageBox::information(this, "tip", QString("Final result is ") +     QString::number(data2) + QString("!"));
}void QtWidgetsApplication::on_clean_clicked() 
{ui.lineEdit->setText("");ui.lineEdit_2->setText("");
}

3、connect绑定

        有了控件,有了slots回调函数,下面最重要的工作,就是把两部分内容进行绑定。这部分一般都是在窗口类的构造函数里面完成的。

QtWidgetsApplication::QtWidgetsApplication(QWidget *parent): QMainWindow(parent)
{ui.setupUi(this);connect(ui.pushButton, &QPushButton::clicked, this, &QtWidgetsApplication::on_calculate_clicked);connect(ui.pushButton_2, &QPushButton::clicked, this, &QtWidgetsApplication::on_clean_clicked);
}

        之所以操作这么简单,就可以实现控件和函数的绑定,本是上说还是因为qt帮我们做了很多额外的工作,比如Q_OBJECT等等。

4、演示效果

        有了回调函数,以及ui文件生成的ui_QtWidgetsApplication.h头文件,对于ui中任何资源的操作,都可以通过ui这个对象来完成。基本的qt应用也可以慢慢做出来了。

        编译的话,我们把之前的Makefile做成模板,编译就是直接输入make即可。不需要做什么额外的操作。个人觉得,这是比IDE更加便捷的方式。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词