2
나는 내 게임의 시작 부분에 QDialog
을 가지고 있습니다.이 수업에는 QGraphicsTextItem
이 있습니다. 나는 그것을 클릭 할 수 있기를 원한다. 사용자가 놀이 게임 시작을 클릭했을 때. 나는이 일을하지만 일하지 않습니다. 당신이 "편집"으로 텍스트 항목을 필요QGraphicsTextItem을 클릭하는 방법?
class Mydialog_start:public QDialog
{
Q_OBJECT
public:
explicit Mydialog_start(QWidget *parent = 0);
signals:
public slots:
void on_play_clicked();
void on_exit_clicked();
private:
QGraphicsScene* scene;
QGraphicsView* view;
QPixmap image;
QBrush brush;
QGraphicsTextItem* text;
QFont font;
const int x_size;
const int y_size;
};
Mydialog_start::Mydialog_start(QWidget *parent) :
QDialog(parent),x_size(400),y_size(400)
{
scene=new QGraphicsScene(this);
view=new QGraphicsView(this);
view->setScene(scene);
scene->setSceneRect(0,0,x_size,y_size);
image.load(":picture/image/background.jpg");
image=image.scaled(x_size,y_size);
brush.setTexture(image);
scene->setBackgroundBrush(brush);
font.setBold(true);
font.setPointSize(40);
font.setItalic(true);
text=scene->addText("play",font);
text->setDefaultTextColor(QColor("red"));
text->setPos(100,300);
this->setFixedSize(400,400);
connect(text,SIGNAL(linkActivated(QString("play"))),this,SLOT(on_play_clicked()));
}
void Mydialog_start::on_play_clicked()
{
accept();
}
void Mydialog_start::on_exit_clicked()
{
reject();
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
Mydialog_start dialog;
dialog.exec();
if(dialog.exec()==QDialog::Accepted)
{
w.show();
}
else
{
w.close();
}
}
게시하기 전에 전혀 검색 했습니까? 정확히 같은 제목의 질문이 있다고 말했을 때 나는 그것을 고치기 위해 실제로 제목을 편집 해 보았습니다. http://stackoverflow.com/questions/3624733/how-to-make-a-qgraphicstextitem-clickable – Mitch
전에 읽었습니다. 그러나 그의 문제는 내 문제와 다릅니다. 그건 내 대답이 아니었다 !! – sarina
그래서'text-> setTextInteractionFlags (Qt :: TextBrowserInteraction);'를 추가하면 작동하지 않습니까? – Mitch