学习目标:
- 了解Qt常用控件与事件
学习内容:
- 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