@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 под частными слотами, но ничего не произошло.

Ответы на вопрос(0)

Ваш ответ на вопрос