نمایش نتایج 1 تا 3 از 3

نام تاپیک: مشکل در connect

  1. #1
    کاربر دائمی آواتار A.iman
    تاریخ عضویت
    اسفند 1391
    محل زندگی
    تبریز
    پست
    184

    مشکل در connect

    سلام دوستان .
    من یه برنامه ی ساده نوشتم که اگه روی کلید کلیک کنیم برخورد لوزی و مستطیل رو اعلام میکنه ... ولی نمیدونم مشکل در connect هست یا جای دیگه ای ؟!
    و در ضمن یه ایکون هم بهش اضافه میکنم ولی نمیاره ! error اش رو هم گذاشت م ...
    کلافه ام کرده این connect و slot و signal !!!

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include <QGraphicsView>
    #include <QGraphicsScene>
    #include <QGraphicsRectItem>
    #include <QPushButton>
    #include <QPixmap>
    #include <QMessageBox>
    #include <QGraphicsEllipseItem>
    MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
    {
    ui->setupUi(this);
    QGraphicsView * view = new QGraphicsView;
    QGraphicsScene *scene = new QGraphicsScene;
    QGraphicsEllipseItem *el = new QGraphicsEllipseItem;
    setCentralWidget(view);
    view->setScene(scene);
    // view.setScene(scene);
    QPushButton *btn = new QPushButton(view);
    connect(btn,SIGNAL(clicked()),
    this , SLOT(btnclick()));
    view->setRenderHint(QPainter::Antialiasing);
    scene->addPixmap(QPixmap("C:\Users\Novin Pendar\Desktop\icon"));
    QGraphicsRectItem *rec = scene->addRect(10,10,100,100);
    rec->setPos(200,200);
    rec->setFlag(QGraphicsItem::ItemIsMovable , true);
    rec->setFlag(QGraphicsItem::ItemIsSelectable);
    rec->setFlag(QGraphicsItem::ItemClipsChildrenToShape );
    //rec->setFlag(QGraphicsItem::ItemClipsToShape,true);
    scene->setSceneRect(0,0,500,500);
    el = scene->addEllipse(100,100,20,10);
    }

    MainWindow::~MainWindow()
    {
    delete ui;
    }

    void MainWindow::btnclick()
    {
    if( rec->collidesWithItem(el))
    {
    QMessageBox::information(this,"collodes","warning !");
    }
    }


    #include <QGraphicsView>
    #include <QGraphicsScene>
    #include <QGraphicsRectItem>
    #include <QPushButton>
    #include <QGraphicsEllipseItem>
    #include <QMainWindow>

    namespace Ui {
    class MainWindow;
    }

    class MainWindow : public QMainWindow
    {
    Q_OBJECT

    public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

    private:
    Ui::MainWindow *ui;
    QGraphicsEllipseItem *el;
    QGraphicsRectItem *rec ;
    private slots :
    void btnclick();
    };

  2. #2
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    مرداد 1391
    سن
    29
    پست
    596

    نقل قول: مشکل در connect

    شما امدی تو هدر تعریف کردی تو قسمت کلاس
     QGraphicsEllipseItem *el;

    خوب دیگه لازم نیست تو فایل cpp بزاری
    QGraphicsEllipseItem *el = new QGraphicsEllipseItem;

    باید بزاری
    el = new QGraphicsEllipseItem;

    چون اگر اون جوری تعریف کنی میاد یک e1 دیگه میسازه واسه همین اون e1 که تو SLOT استفاده می کنی اون e1 ای که فکر می کنی هست نیست !
    http://en.wikipedia.org/wiki/Variable_shadowing
    این عکس هم به خاطره این نمیاد که فرمتشو نزاشتی .jpg یا حالا هرچی
    کد شماا بصورت درست همین جوری که میبینی ارور ربطی به SLOT نداره
    #include <QGraphicsView>
    #include <QGraphicsScene>
    #include <QGraphicsRectItem>
    #include <QPushButton>
    #include <QGraphicsEllipseItem>
    #include <QMainWindow>

    namespace Ui {
    class MainWindow;
    }

    class MainWindow : public QMainWindow
    {
    Q_OBJECT

    public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

    private:
    Ui::MainWindow *ui;
    QGraphicsEllipseItem *el;
    QGraphicsRectItem *rec ;
    private slots :
    void btnclick();
    };

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include <QGraphicsView>
    #include <QGraphicsScene>
    #include <QGraphicsRectItem>
    #include <QPushButton>
    #include <QPixmap>
    #include <QMessageBox>
    #include <QGraphicsEllipseItem>
    MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
    {
    ui->setupUi(this);
    QGraphicsView * view = new QGraphicsView;
    QGraphicsScene *scene = new QGraphicsScene;
    el = new QGraphicsEllipseItem;
    setCentralWidget(view);
    view->setScene(scene);
    // view.setScene(scene);
    QPushButton *btn = new QPushButton(view);
    connect(btn,SIGNAL(clicked()),
    this , SLOT(btnclick()));
    view->setRenderHint(QPainter::Antialiasing);
    scene->addPixmap(QPixmap("C:\Users\Novin Pendar\Desktop\icon.jpg"));
    rec = scene->addRect(10,10,100,100);
    rec->setPos(200,200);
    rec->setFlag(QGraphicsItem::ItemIsMovable , true);
    rec->setFlag(QGraphicsItem::ItemIsSelectable);
    rec->setFlag(QGraphicsItem::ItemClipsChildrenToShape );
    //rec->setFlag(QGraphicsItem::ItemClipsToShape,true);
    scene->setSceneRect(0,0,500,500);
    el = scene->addEllipse(100,100,20,10);
    }

    MainWindow::~MainWindow()
    {
    delete ui;
    }

    void MainWindow::btnclick()
    {
    if( rec->collidesWithItem(el))
    {
    QMessageBox::information(this,"collodes","warning !");
    }
    }

  3. #3
    کاربر دائمی آواتار A.iman
    تاریخ عضویت
    اسفند 1391
    محل زندگی
    تبریز
    پست
    184

    نقل قول: مشکل در connect

    ممنون که مثل همیشه با دقت و حوصله جواب دادی ....

تاپیک های مشابه

  1. مشکل ADO Connection در اینترنت
    نوشته شده توسط Babak-Aghili در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 5
    آخرین پست: سه شنبه 23 خرداد 1385, 16:09 عصر
  2. مشکل با connection string چرا ؟ یا شاید چیز دیگه ؟!
    نوشته شده توسط -osho- در بخش SQL Server
    پاسخ: 6
    آخرین پست: جمعه 07 مرداد 1384, 15:08 عصر
  3. مشکل در Connection string با ASP .Net
    نوشته شده توسط H_Ghaffarian در بخش SQL Server
    پاسخ: 2
    آخرین پست: چهارشنبه 18 خرداد 1384, 12:58 عصر
  4. مشکل در Connect به SQL Server
    نوشته شده توسط ghaum در بخش مسائل مرتبط با نصب و راه اندازی
    پاسخ: 4
    آخرین پست: شنبه 30 فروردین 1382, 07:45 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •