elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [QT] mi programa no detecta que ago clik
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [QT] mi programa no detecta que ago clik  (Leído 1,521 veces)
yoxter

Desconectado Desconectado

Mensajes: 48



Ver Perfil
[QT] mi programa no detecta que ago clik
« en: 13 Octubre 2012, 07:01 am »

Saludos estoy aprendiendo QT y estaba viendo la clase QGraphicsItem y decidi hacer programa despues de un par de tutoriales pero cree un desastre,

lo que se supone que hace el programa es:
cuando doy click en un cuadrado este se borra y se acumulan 50 puntos, pero lo que tengo es un nuevo screensaver :laugh:


hghdjddjdjd.pro
Código:
#-------------------------------------------------
#
# Project created by QtCreator 2012-10-13T00:07:08
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = hghdjddjdjd
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp \
    cuadrado.cpp

HEADERS  += mainwindow.h \
    cuadrado.h

FORMS    += mainwindow.ui

mainwindow.h
Código
  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3.  
  4. #include <QMainWindow>
  5. #include <QtCore>
  6. #include <QtGui>
  7. #include "cuadrado.h"
  8.  
  9. namespace Ui {
  10. class MainWindow;
  11. }
  12.  
  13. class MainWindow : public QMainWindow
  14. {
  15.    Q_OBJECT
  16.  
  17. public:
  18.  
  19.  
  20.  
  21.    explicit MainWindow(QWidget *parent = 0);
  22.    ~MainWindow();
  23.  
  24. private:
  25.  
  26.  
  27.    Ui::MainWindow *ui;
  28.    QGraphicsScene *scene;
  29.    cuadrado *square[30];
  30.  
  31. };
  32.  
  33. #endif // MAINWINDOW_H
  34.  

cuadrado.h
Código
  1. #ifndef CUADRADO_H
  2. #define CUADRADO_H
  3. #include <QPainter>
  4. #include <QGraphicsItem>
  5. #include <QDebug>
  6.  
  7. class cuadrado : public QGraphicsItem
  8. {
  9. public:
  10.    cuadrado();
  11.  
  12.    QRectF boundingRect() const;
  13.    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
  14.  
  15.    int points;
  16.    bool Pressed;
  17.  
  18.  
  19. protected:
  20.     void mousePressEvent(QGraphicsSceneMouseEvent *event);
  21.     void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
  22.  
  23.  
  24. };
  25.  
  26. #endif // CUADRADO_H
  27.  

mainwindow.cpp
Código
  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3.  
  4. MainWindow::MainWindow(QWidget *parent) :
  5.    QMainWindow(parent),
  6.    ui(new Ui::MainWindow)
  7. {
  8.    ui->setupUi(this);
  9.  
  10.    scene = new QGraphicsScene(this);
  11.    ui->graphicsView->setScene(scene);
  12.  
  13.  
  14.  
  15.    for (int i = 0; i < 29; i++) {
  16.  
  17.        square[i] = new cuadrado();
  18.        scene->addItem(square[i]);
  19.    }
  20.  
  21.  
  22. }
  23.  
  24. MainWindow::~MainWindow()
  25. {
  26.    delete ui;
  27. }
  28.  

cuadrado.cpp
Código
  1. #include "cuadrado.h"
  2.  
  3. cuadrado::cuadrado()
  4. {
  5.   Pressed = false;
  6.   points = 0;
  7.  
  8. }
  9.  
  10. QRectF cuadrado::boundingRect() const
  11. {
  12.    return QRectF(rand() % 1000,rand() % 500,100,100);
  13. }
  14.  
  15. void cuadrado::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
  16. {
  17.  
  18.    QRectF *rec = new QRectF;
  19.     *rec = boundingRect();
  20.  
  21.    QBrush brush (Qt::blue);
  22.  
  23.    painter->fillRect(*rec,brush);
  24.  
  25.    painter->drawRect(*rec);
  26.  
  27.   // update(); //aparente el esta tomando la orden como falsa ??
  28.  
  29.    if(Pressed) {
  30.        painter->eraseRect(*rec);
  31.        qDebug() << Pressed;
  32.        points += 50;
  33.    } else {qDebug() << Pressed;  }
  34.    update();
  35. }
  36.  
  37.  
  38.  
  39. void cuadrado::mousePressEvent(QGraphicsSceneMouseEvent *event)
  40. {
  41.    Pressed = true;
  42.    qDebug() << Pressed;
  43.    update();
  44.  
  45.    QGraphicsItem::mouseMoveEvent(event);
  46.  
  47. }
  48.  
  49. void cuadrado::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
  50. {
  51.    Pressed = false;
  52.    qDebug() << Pressed;
  53.    update();
  54.  
  55.    QGraphicsItem::mouseReleaseEvent(event);
  56. }
  57.  
  58.  
  59.  

main.cpp
Código
  1. #include "mainwindow.h"
  2. #include <QApplication>
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6.    QApplication a(argc, argv);
  7.    MainWindow w;
  8.    w.show();
  9.  
  10.    return a.exec();
  11. }
  12.  

mainwindow.ui
Código
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <ui version="4.0">
  3. <class>MainWindow</class>
  4. <widget class="QMainWindow" name="MainWindow">
  5.  <property name="geometry">
  6.   <rect>
  7.    <x>0</x>
  8.    <y>0</y>
  9.    <width>1280</width>
  10.    <height>720</height>
  11.   </rect>
  12.  </property>
  13.  <property name="windowTitle">
  14.   <string>MainWindow</string>
  15.  </property>
  16.  <widget class="QWidget" name="centralWidget">
  17.   <widget class="QGraphicsView" name="graphicsView">
  18.    <property name="geometry">
  19.     <rect>
  20.      <x>20</x>
  21.      <y>10</y>
  22.      <width>1241</width>
  23.      <height>641</height>
  24.     </rect>
  25.    </property>
  26.   </widget>
  27.  </widget>
  28.  <widget class="QMenuBar" name="menuBar">
  29.   <property name="geometry">
  30.    <rect>
  31.     <x>0</x>
  32.     <y>0</y>
  33.     <width>1280</width>
  34.     <height>16</height>
  35.    </rect>
  36.   </property>
  37.  </widget>
  38.  <widget class="QToolBar" name="mainToolBar">
  39.   <attribute name="toolBarArea">
  40.    <enum>TopToolBarArea</enum>
  41.   </attribute>
  42.   <attribute name="toolBarBreak">
  43.    <bool>false</bool>
  44.   </attribute>
  45.  </widget>
  46.  <widget class="QStatusBar" name="statusBar"/>
  47. </widget>
  48. <layoutdefault spacing="6" margin="11"/>
  49. <resources/>
  50. <connections/>
  51. </ui>
  52.  

aqui les dejo un archivo con todo el proyecto junto por si les es mas facil ayudarme asi :

http://www.mediafire.com/?8db8cetvm9xsfgs


« Última modificación: 13 Octubre 2012, 07:23 am por yoxter » En línea




Posiblemente soy el intento de programador mas fracaso de la historia !!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ningun programa me detecta la grabadora
Software
Jose R 1 3,322 Último mensaje 24 Junio 2004, 08:05 am
por fffher
JAVA ECLIPSE ==>DAR EVENTO CLIK AL JButton
Java
leliCabello 1 5,492 Último mensaje 11 Octubre 2009, 02:22 am
por egyware
Un programa detecta si una página inaccesible está censurada
Noticias
wolfbcn 1 1,785 Último mensaje 1 Septiembre 2010, 09:25 am
por Servia
[Ayuda][Videos] Como poner URL o HTML para verlos en un clik
Dudas Generales
Julius 0.4 0 2,679 Último mensaje 28 Enero 2012, 02:31 am
por Julius 0.4
Me detecta el programa el olly???
Ingeniería Inversa
s_azazel 7 3,730 Último mensaje 28 Marzo 2012, 19:21 pm
por s_azazel
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines