crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> А какие вобще сигналы ловятся слотами?, по нажатию кнопки на 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,B);
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();
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- Don   А какие вобще сигналы ловятся слотами?   30.4.2008, 21:37
- - Litkevich Yuriy   напиши свой слот, который меняет шрифт, соедени ег...   30.4.2008, 22:15
- - Don   class Life : public QWidget { Q_OBJECT publi...   1.5.2008, 23:06
- - Litkevich Yuriy   у тебя это не в одном файле?   2.5.2008, 9:10
|- - Don   Цитата(Litkevich Yuriy @ 2.5.2008, 9:10) ...   2.5.2008, 18:57
- - Litkevich Yuriy   тогда надо глянуть вот этот пост   2.5.2008, 19:03
|- - Don   Цитата(Litkevich Yuriy @ 2.5.2008, 19:03)...   2.5.2008, 20:02
- - Litkevich Yuriy   надо qmake сделать, в крайнем случае раздели проек...   2.5.2008, 20:10
|- - Don   Цитата(Litkevich Yuriy @ 2.5.2008, 20:10)...   2.5.2008, 21:02
- - Litkevich Yuriy   я вообще студией не пользуюсь, в том посте который...   2.5.2008, 21:08
- - ViGOur   Don, сделай полный ребилд проекта, думаю должно по...   3.5.2008, 11:21
|- - Don   Цитата(ViGOur @ 3.5.2008, 11:21) Don, сде...   4.5.2008, 17:40
- - ViGOur   Ок, постараюсь.   4.5.2008, 17:51
- - ViGOur   Блин, что-то я посмотрел, и мне кажется, что проще...   5.5.2008, 14:10
- - Don   Но кто-то же создавал же в студии собственные слот...   5.5.2008, 19:31
- - ViGOur   Мы это делали с помощью Qt Integrator, а он идет т...   5.5.2008, 19:50
- - Litkevich Yuriy   как я понял он наталкивается на проблему как тольк...   5.5.2008, 19:53
|- - Don   Цитата(Litkevich Yuriy @ 5.5.2008, 19:53)...   7.5.2008, 13:53
- - ViGOur   Цитата(Litkevich Yuriy @ 5.5.2008, 20:53)...   6.5.2008, 11:34
- - Admin   Обсуждение сдачи на права перенес в: Наконец-то сд...   6.5.2008, 13:04
- - Litkevich Yuriy   а вне студии, а в ее(!) командной строке, може...   7.5.2008, 14:50
|- - Don   Цитата(Litkevich Yuriy @ 7.5.2008, 14:50)...   7.5.2008, 15:02
- - Litkevich Yuriy   просто у студии есть своя командная строка, поищи ...   7.5.2008, 15:24
- - ViGOur   Чтобы с все не обламывалось на макросе Q_OBJECT, н...   7.5.2008, 15:33
- - Don   А в строке "Outputs" точно debug\mo...   7.5.2008, 15:48
- - ViGOur   Угу, туда он складывает всякие мета данные класса,...   7.5.2008, 16:01
- - Don   Сделал всё как было описано, ошибки пропали. Но по...   7.5.2008, 16:17
- - ViGOur   Покажи строку, на которую так ругается   7.5.2008, 16:31
|- - Don   Цитата(ViGOur @ 7.5.2008, 16:31) Покажи с...   7.5.2008, 16:48
- - ViGOur   Да нет, я думаю, что ты где-то обращаешься на прям...   7.5.2008, 16:54
|- - Don   Цитата(ViGOur @ 7.5.2008, 16:54) Да нет, ...   7.5.2008, 17:47
- - Litkevich Yuriy   а ты оригинальный пример (%QTDIR%\examples...   7.5.2008, 17:53
|- - Don   Цитата(Litkevich Yuriy @ 7.5.2008, 17:53)...   7.5.2008, 18:14
- - Litkevich Yuriy   Насчет файла с "кирпичем", включи в пров...   7.5.2008, 18:29
- - Don   Где ты у меня спрашиваешь как я создаю файл проект...   7.5.2008, 18:40
- - Litkevich Yuriy   пока проделай то что я сказал, ну и опиши как ты с...   7.5.2008, 18:45
|- - Don   Цитата(Litkevich Yuriy @ 7.5.2008, 18:45)...   7.5.2008, 18:53
- - Litkevich Yuriy   Цитата(Don @ 7.5.2008, 22:53) потом запус...   7.5.2008, 18:55
|- - Don   Цитата(Litkevich Yuriy @ 7.5.2008, 18:55)...   7.5.2008, 19:03
- - Litkevich Yuriy   Цитата(Don @ 7.5.2008, 22:53) У меня там ...   7.5.2008, 19:09
|- - Don   Цитата(Litkevich Yuriy @ 7.5.2008, 19:09)...   7.5.2008, 19:21
- - Litkevich Yuriy   если ты moc-файлы руками не правишь, то и ошибку в...   7.5.2008, 19:44
- - Don   Ладно, со своей предыдущей ошибкой я разобрался, п...   8.5.2008, 15:53
- - Litkevich Yuriy   Цитата(Don @ 8.5.2008, 19:53) Ладно, со с...   8.5.2008, 16:37
- - Don   Ошибка была в том, что я при реализации функций кл...   8.5.2008, 16:58
- - Litkevich Yuriy   Цитата(Don @ 8.5.2008, 20:58) А то у меня...   8.5.2008, 17:24
- - Don   Чёт я не понял, что ты исправил. У меня как не раб...   8.5.2008, 17:42
- - Litkevich Yuriy   я сделал как в конструкторе, но есть какой-то кася...   8.5.2008, 17:59
- - Don   А как включить стиль Cleanlooks?   8.5.2008, 18:04
- - Litkevich Yuriy   Прочитай конец моего предыдущего поста (о лекарств...   8.5.2008, 18:07


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


12 чел. читают эту тему (гостей: 12, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 3.12.2024, 11:18