Qt c++窗体类,微件类如何声明使用静态变量

Qt C++ 定义窗体类时,如果按照一般的c++类声明静态成员变量会提示undefined identifier,下面给出正确的方法

如果定义了一个QMainWindow类的子类MainWindow,添加静态变量,其头文件如下

  • mainwindow.h ----先声明

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "mybtn.h"

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    static int timeelasped;//静态变量,在此只做声明
    static int timepassed;//静态变量,在此只做声明
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
    int gettimepassed();
    void timerEvent(QTimerEvent *qt);
    void mousePressEvent(QMouseEvent *event);

private:
    Ui::MainWindow *ui;
    int timerid;
    int timerid1;
};
#endif // MAINWINDOW_H
  • mainwindow.cpp----再具体定义

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
int MainWindow::timeelasped=10;//具体定义声明的变量
int MainWindow::timepassed=0;//具体定义声明的变量

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    timerid = this->startTimer(1000);
    timerid1 = this->startTimer(1000);
    connect(ui->pushButton,&mybtn::clicked,[=](){
        qDebug()<<"第二套指挥方案启动成功!";
        if(MainWindow::timeelasped>0)
        {
            this->killTimer(timerid);
            this->ui->label_2->setText(QString("发射取消"));
        }
        else
        {
            this->ui->label_2->setText(QString("无法中止,导弹已经发射,正飞往目标,正尝试使用激光武器"));
        }
    });
}
  •  使用----类名::变量名
void MainWindow::mousePressEvent(QMouseEvent *qm)
{
    qDebug()<<"已交由全俄罗斯作战指挥中心";
    if(MainWindow::timeelasped==0)//使用时类名::变量名
    {
        this->ui->label_4->setText(QString("达瓦里士,已调用战术激光摧毁导弹"));
    }
    else
    {
        this->ui->label_4->setText(QString("达瓦里士,已成功终止发射"));
    }
}

 

原文链接: https://www.cnblogs.com/saintdingspage/p/12271780.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    Qt c++窗体类,微件类如何声明使用静态变量

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/327661

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月1日 下午4:21
下一篇 2023年3月1日 下午4:22

相关推荐