سلام
چگونه میشه رفتار یک عکس رو به یک button تبدیل کرد ؟
مثلا بشه روش کلیک کرد ؟
سلام
چگونه میشه رفتار یک عکس رو به یک button تبدیل کرد ؟
مثلا بشه روش کلیک کرد ؟
یه button بزار ، با استفاده از StyleSheet هم برای پس زمینه عکس بزار و هر کاری که میخوایی انجام بده.
YES I AM Qt
Code Less
Create More
Deploy Everywhere
آخه اون عکس در باتم بد قرار میگیره !
هر کاری کردم و اینترنت رو زیر رو کردم باز عکس کامل کلید رو نمی پوشونه !
شما چطوری قرار میدی ؟
خوب نگشتی دیگه :)
احتمالا باید با همون style ها بشه
یک راه دیگشم اینه که از کلاس QPushButton ارث ببری و paintevent رو دوباره بنویسی
یک مثال سادشو برات میزارم نگاه کن
testPushButton.rar
با style ها نمیشه ؟ آخه 60تا کلید در صفحه هم دارم بخوام واسه هرکدوم.. خیلی وقت می بره !
به این صورت حل شد :
ui->pushButton1->setStyleSheet("background-image: url(:/PIC/Button-1.png);"
"background-repeat: no-repeat;"
"background-position: center center");
از همه دوستان که جواب دادن تشکر می کنم .
سلام.
برای اینکه به تونی یه رخدادی رو با کلیک رو عکس راه بندازی 2 تا راه داری :
1- برو تو گوگل و qt promote widget رو سرچ کن.فیلم آموزشش تو یوتیوب هست.
2- یه label بزار. عکسش رو تنظیم کن.بعد:
کلاس جدید بساز به نام my_label
سپس تو my_label.h کد زیر رو وارد کن.
#ifndef MY_LABEL_H
#define MY_LABEL_H
#include <QLabel>
#include <QMouseEvent>
class my_label : public QLabel
{
Q_OBJECT
public:
explicit my_label(QWidget *parent = 0);
signals:
void mousePressEvent(QMouseEvent *ev);
void mouseMoveEvent(QMouseEvent *ev);
};
#endif // MY_LABEL_H
بعد برو تو my_label.cpp و کد زیر رو وارد کن:
#include "my_label.h"
my_label::my_label(QWidget *parent) :
QLabel(parent)
{
setMouseTracking(true);
}
حالا برو روی لیبلی که گذاشته بود و روش کلیک راست کن.
گزینه promote to رو بزن.
تو صفحه ای که باز شد موارد زیر رو تنظیم کن.
base class name = QLabel
promoted class name = my_label
header file = my_label.h
global include رو تیک بزن.
بعد promote رو کلیک کن.
حالا می تونی این طوری استفاده کنی :
connect(ui->back,SIGNAL(mousePressEvent(QMouseEvent*)),this,SLOT(back()));