ДневникГлавная » 2010 » Август » 9 » Отловить нажатие клавиши на QLabel (Вариант 2)
Отловить нажатие клавиши на QLabel (Вариант 2) | 17:36 |
mylabel.h
#ifndef MYLABEL_H #define MYLABEL_H
#include <QLabel>
class myLabel : public QLabel { Q_OBJECT public: myLabel(QObject *obj, QWidget * parent = 0 ); ~myLabel(){}
signals: void clicked();
public slots: void slotClicked();
protected: void mousePressEvent ( QMouseEvent * event ) ; private: QObject *object;
}; #endif
mylabel.cpp
#include "mylabel.h" #include <QDesktopServices> #include <QUrl> #include <QApplication> myLabel::myLabel(QObject *obj, QWidget * parent ) :QLabel(parent) { connect( this, SIGNAL( clicked() ), this, SLOT( slotClicked() ) ); object = obj; }
void myLabel::slotClicked() { QLabel *lbl = qobject_cast<QLabel *>(sender());
if (lbl->objectName() == "label_3" || lbl->objectName() == "label_4"){ QApplication::setOverrideCursor(Qt::BusyCursor); QDesktopServices::openUrl(QUrl("http://turbobit.net/partner/?PHPSESUD=45825C776D953B052491770185CD9268")); QApplication::restoreOverrideCursor() ; } if (lbl->objectName() == "label_5"){ QApplication::setOverrideCursor(Qt::BusyCursor); QDesktopServices::openUrl(QUrl("http://depositfiles.com/signup.php?ref=merke")); QApplication::restoreOverrideCursor() ; } }
void myLabel::mousePressEvent ( QMouseEvent * event ) { emit clicked(); }
Теперь два варианта если Вы работаете в QtDesigner:
Добавляем на форму QLabel - Кликаем на нем правой кнопкой и выбираем "Promote to" там прописываем наш заголовочный файл: mylabel.h
Все теперь новый контрол у нас создан с новым сигнал уже click()
Или если вы вручную проектируете интерфейс:
myLabel *label = new myLabel();
|
Просмотров: 36037 |
Добавил: qt-boy
| Теги: Отловить нажатие клавиши на QLabel
| Рейтинг: 5.0/1 |
|
Всего комментариев: 1 | |
1
BrandonSnack
(18.04.2024 23:30)
0
handmade herbal soap <a href=""> https://forums.dieviete.lv/profils/127605/forum/ </a> fiber pills
|
|
|
|
|
Наш опрос |
---|
|
Статистика |
---|
Онлайн всего: 2 Гостей: 2 Пользователей: 0 |
|