А какие вобще сигналы ловятся слотами?, по нажатию кнопки на Label |
Здравствуйте, гость ( Вход | Регистрация )
А какие вобще сигналы ловятся слотами?, по нажатию кнопки на Label |
Don |
30.4.2008, 21:37
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 59 Регистрация: 19.3.2008 Пользователь №: 127 Спасибо сказали: 0 раз(а) Репутация: 0 |
А какие вобще сигналы ловятся слотами?
Я хотел к примеру, чтоб по нажатию кнопки на Label менялся шрифт текста, но ничего не получилось. |
|
|
Don |
8.5.2008, 15:53
Сообщение
#2
|
Студент Группа: Новичок Сообщений: 59 Регистрация: 19.3.2008 Пользователь №: 127 Спасибо сказали: 0 раз(а) Репутация: 0 |
Ладно, со своей предыдущей ошибкой я разобрался, при использовании QOBJECT ошибок не выдаёт, все файлы moc_*.cpp и moc_*.obj генерируются, но кнопка всё равно остаётся мёртвой, жмёшь на неё, а она ничего не делает. Люди добрые посмотрите пожайлуйста мой код и скажите что я делаю не так.
Эта версия моей проги при запуске в клетках рандомно рисуются смайлики, а при нажатии на кнопку должна ещё раз рандомно перерисовывать смайлики, но этого не происходит. life.h CODE #ifndef LCDRANGE_H #define LCDRANGE_H #include <QtGui> #include <QWidget> #include <QPainter> class Life : public QWidget { Q_OBJECT public: Life(QWidget *parent = 0); void smile(int x, int y ); protected: virtual void paintEvent(QPaintEvent*); public slots: void ris(); private: int imatrix[10][10]; int newmatrix[10][10]; }; #endif life.cpp CODE #include <QApplication> #include <QPainter> #include <QTextCodec> #include <QPushButton> #include <QtGui> #include <math.h> #include <time.h> #include <QPushButton> #include <Life.h> Life::Life(QWidget *parent) : QWidget(parent) { srand(time(0)); for (int i = 0; i<10; i++) for(int j=0; j<10; j++) imatrix[i][j] = rand()%3; } void Life::ris() { int x = 20; int y = 40; srand(time(0)); for (int i = 0; i<10; i++) for(int j=0; j<10; j++) newmatrix[i][j] = rand()%3; for (int i = 0; i<10; i++) { for(int j=0; j<10; j++) { if (newmatrix[i][j] == 1) smile(x,y); x = x + 50; } y = y + 50; x = 20; } } void Life::paintEvent(QPaintEvent*) { QPainter paint(this); int x = 15; int y; paint.setRenderHint(QPainter::Antialiasing,true); paint.setPen(QPen(Qt::black, 1, Qt::SolidLine, Qt::RoundCap)); paint.setBrush(QBrush(Qt::white, Qt::SolidPattern)); for (int i=1; i<=11; i++) //рисуем клетку { paint.drawLine(x,15,x,515); x = x + 50; } x = 15; y = 19; for (i=1; i<=11; i++) { paint.drawLine(15,x,515,x); x = x+50; } x = 19; paint.setPen(QPen(Qt::white)); //рисуем прямоугольники в клетках paint.drawRoundRect(19,19,42,42); for (i=1; i<=10; i++) { for (int j=1; j<=10; j++) { paint.drawRoundRect(x,y,42,42); x = x+50; } x = 19; y = y +50; } srand(time(0)); x = 20; y = 40; for (int i = 0; i<10; i++) //рисуем смайлики { for(int j=0; j<10; j++) { if (imatrix[i][j] == 1) smile(x,y); x = x + 50; } y = y + 50; x = 20; } paint.end(); } void Life::smile(int x, int y) //рисуем смайлик { QPainter paintsmile(this); paintsmile.setRenderHint(QPainter::Antialiasing,true); paintsmile.setPen(QPen(Qt::black)); paintsmile.setBrush(QBrush(Qt::yellow)); paintsmile.drawEllipse(x,y-20,40,40); paintsmile.drawEllipse(x+11,y-5,3,3); paintsmile.drawEllipse(x+26,y-5,3,3); QRect rect(x+6,y-24,28,39); int a = 30 * 112; int b = 120 * 16; paintsmile.drawArc(rect,a,; paintsmile.end(); } main.cpp CODE #include <QApplication> #include <QPainter> #include <QHBoxLayout> #include <QSpinBox> #include <QTextCodec> #include <QPushButton> #include <QtGui> #include <math.h> #include <time.h> #include <QPushButton> #include <Life.h> int main(int argc, char *argv[]) { QApplication app(argc,argv); QWidget window; QPushButton go("Go"); //go.setGeometry(550,490,70,28); go.setFixedSize(70,28); Life a; QObject::connect(&go, SIGNAL(clicked()), &a, SLOT(ris())); window.setGeometry(100,100,700,550); //рамки окна window.setFixedSize(700,550); //фиксируем границы QHBoxLayout lay; //собираем lay.addWidget(&a); //все виджеты lay.addWidget(&go); window.setLayout(&lay); //вместе window.show(); return app.exec(); } |
|
|
Текстовая версия | Сейчас: 3.12.2024, 11:18 |