QT开发之老板无法拒绝的辞职信
#include "widget.h"
#include "ui_widget.h"
#include <QCloseEvent>
#include <QDialog>
#include <QMessageBox>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
QImage img;
img.load(":/pi/123.jpg");
ui->setupUi(this);
ui->pushButton->setAttribute(Qt::WA_Hover,true);
ui->pushButton->installEventFilter(this);
ui->label->setPixmap(QPixmap::fromImage(img));
ui->label->setScaledContents(true);
}
Widget::~Widget()
{
delete ui;
}
bool Widget::eventFilter(QObject *obj, QEvent *event)
{
if(obj == ui->pushButton) {
if(event->type() == QEvent::HoverEnter) {
ui->pushButton->move(rand()%(this->width() - ui->pushButton->width()),rand()%(this->height()
-ui->pushButton->height()));
ui->pushButton->raise();
return true;
}
}
return QWidget::eventFilter(obj,event);
}
void Widget::closeEvent(QCloseEvent *event1)
{
QMessageBox::warning(this,"warning","关不掉的!!");
event1->ignore();
}
void Widget::on_pushButton_2_clicked()
{
QDialog *wi = new QDialog;
wi->setStyleSheet("border-image: url(:/pi/222.jpg)");
wi->exec();
wi->setStyleSheet("border-image: url(:/pi/333.jpg)");
wi->exec();
QMessageBox::warning(this,"我要走了","老板,再见!!",QString("确认"),QString("退出"));
this->destroy();
}
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = nullptr);
~Widget();
bool eventFilter(QObject *obj, QEvent *event);
virtual void closeEvent(QCloseEvent *event1);
private slots:
void on_pushButton_2_clicked();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H