Qt-常用控件与事件

学习目标:

  • 了解Qt常用控件与事件

学习内容:

  1. Qlabel控件
this ->resize(600,400);
    label =new QLabel(this);
   // label->setText("标签");
    label->resize(100,100);
    label->move(100,100);
    //超链接//百度一下是内容//link是自动打开。
    label->setText("<a href=\"https://www.baidu.com\">百度</a>");
    label->setOpenExternalLinks(true);

    //图片标签//设置自适应大小
    label_p =new QLabel(this);
    label_p->resize(100,100);
    label_p->move(200,200);
    label_p->setPixmap(QPixmap("Image/face.png"));
    label_p ->setScaledContents(true);

    //动态图
    label_mp =new QLabel(this);
    label_mp->resize(100,100);
    label_mp->move(300,200);
    QMovie *move=new QMovie("Image/boy.gif");
    label_mp->setMovie(move);
    label_mp->setScaledContents(true);
    move->start();

运行结果:

2.QLineEdit控件

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    //设置文本模式
    //设置密码模式
    ui->lineEdit->setEchoMode(QLineEdit::Password);
    //控制点与点之间的间距
    ui->lineEdit->setTextMargins(100,0,0,0);
    //设置编辑文本
    ui->lineEdit->setText("gtgt");



}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_lineEdit_returnPressed()
{
    //打印行编辑的内容
    //回车,显示内容
    qDebug()<<ui->lineEdit->text();//获取行编辑内容

}

运行结果:

3.自定义控件

自定义滑动条

#include "smallwidet.h"
#include "QHBoxLayout"
smallwidet::smallwidet(QWidget *parent) : QWidget(parent)
{
    slider = new QSlider(Qt::Horizontal,this);//垂直方向
    spin = new QSpinBox(this);
    // 创建布局对象
    QHBoxLayout *lay=new QHBoxLayout;
    // 将控件添加到布局中layout­>addWidget(spin); layout­>addWidget(slider);

    lay->addWidget(spin);
    lay->addWidget(slider);
     // 将布局设置到widet窗口中
    this->setLayout(lay);
    //滑动相应//当盒子的值改变,滑动条的槽函数setv就会接收这个值//当滑动条的值改变,盒子的槽函数就会接收这个值
    connect(spin,static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged),slider,&QSlider::setValue);
    connect(slider,&QSlider::valueChanged,spin,&QSpinBox::setValue);
}

4.鼠标与滚轮事件

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QMouseEvent>
#include <QWheelEvent>
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}
void Widget::mousePressEvent(QMouseEvent *event)
{
    //坐标的位置
      qDebug()<<"点击了鼠标"<<event->x()<<event->y();


      if(event->button()==Qt::LeftButton)
      {
        qDebug()<<"点了鼠标左键";
      }
      else if(event->button()==Qt::RightButton)
      {
        qDebug()<<"点了鼠标右键";
      }

}
void Widget::mouseMoveEvent(QMouseEvent *event)
{
     // qDebug()<<"点击鼠标"<<event->x()<<event->y();//坐标的位置
}
//如果方向是垂直
void Widget::wheelEvent(QWheelEvent *event)
{
        if(event->orientation()==Qt::Vertical)
        {
          qDebug()<<"滚轮"<<event->x()<<event->y();
        }
}

运行结果:

5.键盘与窗口事件

#include "widget.h"
#include <QDebug>
#include <QKeyEvent>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
}

Widget::~Widget()
{

}
void Widget::keyPressEvent(QKeyEvent *event)
{
    qDebug()<<event->key();
    //按下的是shift
    if(event->modifiers() == Qt::ShiftModifier)
    {
        qDebug()<<"按下shift";
    }
}
//窗口大小改变事件
void Widget:: resizeEvent(QResizeEvent *event)
{
    qDebug()<<event->oldSize();
    qDebug()<<event->size();
}
void Widget::enterEvent(QEvent *event)
{
    qDebug()<<"进入";
}

void Widget:: leaveEvent(QEvent *event)
{
    qDebug()<<"离开";
}

运行结果:


学习产出:

  • 技术笔记 x1
  • CSDN 技术博客 x1
  • 学习的 vlog 视频 x1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值