Qt自定义控件(三)
来源:互联网 发布:程序员属于什么行业 编辑:程序博客网 时间:2024/06/05 06:25
一,绑定控件的使用
使用的槽函数的使用
#include "signalwegit.h"#include "ui_signalwegit.h"SignalWegit::SignalWegit(QWidget *parent) : QWidget(parent), ui(new Ui::SignalWegit){ ui->setupUi(this); //数字改变滑动 connect(ui->spinBox, SIGNAL(valueChanged(int)), ui->slider, SLOT(setValue(int))); //滑动改变数字 connect(ui->slider, SIGNAL(valueChanged(int)), ui->spinBox, SLOT(setValue(int)));}SignalWegit::~SignalWegit(){ delete ui;}
二,事件的处理机制
QEvent 中
#ifndef MYBUTTON_H#define MYBUTTON_H#include <QPushButton>class MyButton : public QPushButton{ Q_OBJECTpublic: explicit MyButton(QWidget *parent = 0); bool event(QEvent *event);signals:public slots:};#endif // MYBUTTON_H
cpp
#include "mybutton.h"#include <QEvent>#include <QMouseEvent>#include <QDebug>#include <QWidget>//要继承QPushButton类MyButton::MyButton(QWidget *parent) : QPushButton(parent){}bool MyButton::event(QEvent *event){ //mouse 的event事件的处理 if (event->type() ==QEvent::MouseButtonPress) { QMouseEvent * mouseev = static_cast<QMouseEvent*>(event); //判断是那个键 if (mouseev->button() == Qt::LeftButton) { return true; } //mid中 键 if (mouseev->button() == Qt::MidButton) { qDebug() << "mid Button"; } //right中 键 if (mouseev->button() == Qt::RightButton) { qDebug() << "right Button"; } } //父类处理 return QPushButton::event(event);}
mainwindow.h
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); bool eventFilter(QObject *watched, QEvent *event);private: Ui::MainWindow *ui;};#endif // MAINWINDOW_H
cpp
#include "mainwindow.h"#include "ui_mainwindow.h"#include <QEvent>#include <QMouseEvent>#include <QMessageBox>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); ui->myBtn->installEventFilter(this);}MainWindow::~MainWindow(){ delete ui;}bool MainWindow::eventFilter(QObject *watched, QEvent *event){ //判断产生事件的窗口是不是mybutton if (watched == ui->myBtn) { if (event->type() == QEvent::MouseButtonPress) { QMouseEvent* mouseEv = static_cast<QMouseEvent*>(event); if (mouseEv->button() == Qt::RightButton) { QMessageBox::information(this, "info", "songlI"); return true; } } } return QMainWindow::eventFilter(watched, event);}
阅读全文
0 0
- Qt自定义控件(三)
- 编写Qt Designer自定义控件(三)——给自定义控件添加属性
- 编写Qt Designer自定义控件(三)——给自定义控件添加属性
- 自定义控件(三)
- .net自定义控件(三)
- 自定义控件入门(三)
- 自定义控件View(三)
- 自定义控件(三种)
- Android自定义控件(三)继承控件
- Qt笔记(8)自定义控件 三 让使用了自定义控件的工程运行起来
- 自定义QT控件(插件)流程
- Qt之自定义控件(开关按钮)
- Qt之自定义控件(开关按钮)
- QT学习笔记(5):自定义控件
- Qt之自定义控件(开关按钮)
- QT自定义控件(Widget+QSS)
- QT自定义控件外观
- 关于QT自定义控件
- strcmp函数与strcpy函数
- java虚拟机之-内存区域
- RNN & LSTM
- 经典sql场景
- Pandas索引方法介绍
- Qt自定义控件(三)
- jQuery效果
- java的组合与继承
- linux gcc简单使用
- 读书误区
- [LeetCode]Swap Nodes in Pairs题解
- Lintcode141 Sqrtx solution 题解
- HYSBZ
- angularjs内置的方法