#include "enterleave.h"
#include<QVBoxLayout>
#include<QLabel>
enterleave::enterleave(QWidget *parent)
: QWidget{parent}
{
//垂直布局
QVBoxLayout *vlayout=new QVBoxLayout(this);
vlayout->setSpacing(0);
vlayout->setContentsMargins(0,0,0,0);
QLabel *label=new QLabel(this);
label->setText("鼠标进入/离开");
label->setFrameShape(QFrame::Box);
//设置样式表
label->setStyleSheet("background-color:blue;font-size:25px");
//设置固定高度
label->setFixedHeight(50);
//设置居中
//setAlignment用于设置文本、控件或布局的对齐方式
label->setAlignment(Qt::AlignCenter);
//设置垂直布局
vlayout->addWidget(label);
}
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QPushButton>
#include<QVBoxLayout>
#include<QHBoxLayout>
#include"contextevent.h"
#include"dragevent.h"
#include"keyevent.h"
#include"painteevent.h"
#include"pressmove.h"
#include"propagate.h"
#include"timer.h"
#include"enterleave.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
// 左侧导航窗口是垂直布局
QVBoxLayout *layout = new QVBoxLayout(ui->leftwidget);
layout->setSpacing(0);
layout->setContentsMargins(0,0,0,0);
createbotton();
initmain();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::createbotton()
{
QStringList names;
names<<"鼠标进入/离开"
<<"鼠标按下/移动/释放"
<<"键盘事件"
<<"定时器事件"
<<"拖动事件"
<<"绘图事件"
<<"右键菜单"
<<"总结:事件的传递流程";
btngroup=new QButtonGroup(this);
ui->leftwidget->setStyleSheet(R"(
QPushButton {
font: 14px;
text-align : left;
}
)");
for(int i=0;i<names.count();i++)
{
QPushButton *btn =new QPushButton;
//设置固定高度
btn->setFixedSize(190,51);
//设置文字
btn->setText(" "+QString("%1.%2").arg(i+1,2,10,QChar('0')).arg(names.at(i)));
//设置按钮可选中,类似于复选框的功能
btn->setCheckable(true);
//将按钮添加到按钮组,并设置索引
btngroup->addButton(btn,i);
// 将按钮添加到布局中
ui->leftwidget->layout()->addWidget(btn);
}
//设置默认第一个按钮选中
btngroup->button(0)->setChecked(true);
}
void MainWindow::initmain()
{
//int addWidget(QWidget *w);
ui->stackedWidget->addWidget(new enterleave());
ui->stackedWidget->addWidget(new pressmove());
ui->stackedWidget->addWidget(new keyevent());
ui->stackedWidget->addWidget(new timer());
ui->stackedWidget->addWidget(new dragevent());
ui->stackedWidget->addWidget(new painteevent());
ui->stackedWidget->addWidget(new contextevent());
ui->stackedWidget->addWidget(new propagate());
}