A.iman
دوشنبه 24 تیر 1392, 18:09 عصر
سلام دوستان .
من یه برنامه ی ساده نوشتم که اگه روی کلید کلیک کنیم برخورد لوزی و مستطیل رو اعلام میکنه ... ولی نمیدونم مشکل در 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();
};
من یه برنامه ی ساده نوشتم که اگه روی کلید کلیک کنیم برخورد لوزی و مستطیل رو اعلام میکنه ... ولی نمیدونم مشکل در 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();
};