VS下QT的自定义槽函数修改方法

通过几天的摸索,基本发现了两个VS的槽函数的修改方法

一种是UI是通过UI 设计师拖出来的,类似VB的方法,通过拖的方法,按钮的代码是系统自动生成的,在UI.h的头文件下,这个时候,实现槽函数有个固定的格式。

//槽函数在Header Files文件的头文件下

#include <QtGui/QMainWindow>
#include "ui_qt1.h"

class qt1 : public QMainWindow
{
    Q_OBJECT

public:
    qt1(QWidget *parent = 0, Qt::WFlags flags = 0);
    ~qt1();

private slots:
    void on_pushButton_clicked();
    void on_pushButton_2_clicked();//注意一定要on_信号题_信号这种格式

private:
    QLineEdit *display;
    Ui::qt1Class ui;
};



//槽函数的实现的在 cpp下

void qt1:: on_pushButton_clicked()
{
    int one,two,sum;

    one=ui.lineEdit->text().toInt();
    two=ui.lineEdit_2->text().toInt();
    sum=one+two;
    ui.lineEdit_3->setText(QString::number(sum));
}
View Code

还有一种是布局通过手写代码实现的,这时也有个固定的格式

QToolButton *clearMemoryBtn = new QToolButton;
clearMemoryBtn->setText("MC");
connect(clearMemoryBtn,SIGNAL(clicked()),this,SLOT(clearMemory()));

//注意connect的格式
//然后是槽函数的clearMemory()声明实现

public slots:
    void digitClick();


void calc::digitClick()
{
    QToolButton *clickedButton = qobject_cast<QToolButton *>(sender());
    int digit = clickedButton->text().toInt();
    if (display->text() == "0" && digit == 0)
        return;
    if (display->text() == "0")
        display->setText("");
    if (waitingForOperand == false)
    {
        display->clear();
        waitingForOperand = true;
    }
    display->setText(display->text() + QString::number(digit));
}
View Code
原文地址:https://www.cnblogs.com/huhuuu/p/3301363.html