game::game(QWidget *parent) : QWidget(parent){ QGridLayout *gl = new QGridLayout(); setLayout(gl); for (int i = 0; i < 3; i++) for(int j = 0; j < 3; j++) { crossButton *cb = new crossButton(this); connect(cb, SIGNAL(clicked()), this, SLOT(turn())); gl->addWidget(cb, i, j); }}
crossButton::crossButton(QWidget *parent) : QPushButton(parent){ m_isPressed = false; m_isCross = false; setMinimumSize(QSize(50, 50)); setMaximumSize(QSize(50, 50)); connect(this, SIGNAL(clicked()), this, SLOT(setClickedState()));}
connect(cb, SIGNAL(clicked()), this, SLOT(turn()))
connect(this, SIGNAL(clicked()), this, SLOT(setClickedState()))
Если задать глобальную статическую - то видно будет.Если публичную статическую - то будет видно,если второй cpp будет иметь указатель на класс из первого cpp.
C++ (Qt)static int var1 = 0; namespаce { // рекомендуется так вместо staticint var2 = 0;}
C++ (Qt)int var3 = 0;
C++ (Qt)extern int var3;
C++ (Qt)#include "file1.h"var3 = 1;
"Статическая" означает "только в этом cpp (местные). Напрfile1.cpp[code=cpp]static int var1 = 0; namespаce { // рекомендуется так вместо staticint var2 = 0;}
C++ (Qt)// file1.hclass MyClass {public: static int mVar1;}; // file1.cppint MyClass::mVar1 = 0; // filу2.cpp#include "file1.h"MyClass::mVar1 = 33;
#include <QApplication>#include "calendar.h"int main(int argc, char *argv[]){ QApplication a(argc, argv); calendar c; c.show(); return a.exec();}
#ifndef CALENDAR_H#define CALENDAR_H#include <QWidget>#include <QTableView>#include <QPushButton>#include <QVector>class calendar : public QWidget{ Q_OBJECT QTableView *m_view; QVector<QPushButton *> m_buttons;public: explicit calendar(QWidget *parent = 0);signals:public slots:};#endif // CALENDAR_H
#include "calendar.h"#include <QVBoxLayout>#include <QHBoxLayout>#include <QWidget>calendar::calendar(QWidget *parent) : QWidget(parent){ const int buttonNum = 5; QString btns[buttonNum] = { "Spring", "Summer", "Fall", "Winter", "All" }; setLayout((new QVBoxLayout)); QHBoxLayout *lay = new QHBoxLayout(); m_view = new QTableView(this); for (int i = 0; i < buttonNum; ++i) { m_buttons[ i ] = new QPushButton(btns[ i ], this); lay->addWidget(m_buttons[ i ]); } layout()->addWidget(m_view); layout()->addItem(lay);}
m_buttons[ i ] = bla bla
QPushButton * point = new QPushButton bla bla;m_buttons.Append(point);