@jycjo Я обновил ответ с некоторой частью кода. к сожалению я не могу добавить весь свой код там. Я надеюсь, это поможет
ичок в Qt, теперь я хочу сделать свой ярлык кликабельным, я так много искал в Интернете, но никто не приводит мой реальный пример того, как они это сделали. Так может ли кто-нибудь научить меня шаг за шагом? Теперь моя основная мысль - создать новый файл .c и новый файл .h соответственно, а затем включить их в мой mainwindow.c и затем связать его с существующей меткой в форме пользовательского интерфейса. Это то, что я пытался сделать, но не могу этого сделать. Надеюсь, кто-то может научить и лучше поставить пошаговую картинку в команду, спасибо. Вот код clicklabel.h:
#ifndef CLICKEDLABEL_H
#define CLICKEDLABEL_H
#include <QWidget>
#include <QLabel>
class ClickedLabel : public QLabel
{
Q_OBJECT
public:
ClickedLabel(QWidget *parent=0): QLabel(parent){}
~ClickedLabel() {}
signals:
void clicked(ClickedLabel* click);
protected:
void mouseReleaseEvent(QMouseEvent*);
};
#endif // CLICKEDLABEL_H
Это код clicklabel.c:
#include "clicklabel.h"
void ClickedLabel::mouseReleaseEvent(QMouseEvent *)
{
emit clicked(this);
}
Вот что я добавил в свой mainwindow.c (название метки - click_test):
void data_labeling::on_label_clicked()
{
QString path="/home/j/Pictures/images.jpeg";
QPixmap cat(path);
connect(ui->click_test, SIGNAL(clicked()), this,
SLOT(on_label_clicked()));
ui->click_test->setPixmap(cat);
ui->click_test->resize(cat.width(),cat.height());
}
Конечно, я повысил его до clicklabel.h, а также добавил void on_label_click () в свой mainwindow.h под частными слотами, но ничего не произошло.