南宁西乡塘学界面ui设计人气榜首一览
来源:南宁设计培训学校
时间:2022/7/29 10:46:55
南宁西乡塘学界面ui设计人气榜首一览?南宁学ui设计到天琥教育,一个好的网页ui设计对网站很重要,因为网站的内容做得再好,要是网页的配色令人眼花缭乱,排版设计让人看不下去,这样怎么会有人在网页多停留呢?所以有不少企业对网页UI设计也比较重视。不少人被网页ui设计师的薪资待遇所吸引,打算转行当网页UI设计师!来天琥ui设计培训班,这里有优质的师资,丰富的教学资源,你可以在这得到的成长!
界面设计分为预览和回放两个模块,本节主要是预览模块。
一、替换系统图标
1. 替换生成程序图标
2. 替换生成界面图标
二、窗口布局
1. 自定义标题栏图像
QWidget来实现自定义标题栏,因为QWidget可以自定义大小。布局器使用代码。
自定义标题栏
添加组件,并改变样式
定义标题栏zui小化、zui大化、关闭功能键
2. 窗口布局
#include
#include
/*创建布局器*/
auto Vlay = new QVBoxLayout();
this.setLayout(Vlay);
Vlay->setContentsMargins(0, 0, 0, 0); //边缘间隔
Vlay->setSpacing(0); //内部对象的间隔
Vlay->addWidget(ui.head); //布局器添加布局的对象
Vlay->addWidget(ui.body);
auto Hlay = new QHBoxLayout;
ui.body->setLayout(Hlay);
Hlay->addWidget(ui.left);
Hlay->addWidget(ui.cams);
Hlay->setContentsMargins(0, 0, 0, 0);
三、拖动和缩放
1. 拖动功能
QT自带标题栏是可以实现拖动效果的,但自定义标题栏就需要自己实现拖动效果
static bool MousePress = false; //鼠标是否按下
static QPoint MousePoint; //点击的位置
void XViewer10::mousePressEvent(QMouseEvent* ev)
{
MousePress = true; //记录按下的状态
MousePoint = ev->pos(); //记录鼠标的位置
}
void XViewer10::mouseReleaseEvent(QMouseEvent* ev)
{
MousePress = false; //记录鼠标的状态
}
void XViewer10::mouseMoveEvent(QMouseEvent* ev)
{
//若鼠标未按下
if (!MousePress)
{
QWidget::mouseMoveEvent(ev); //执行其本来的时间
return;
}
this->move(ev->globalPos() - MousePoint); //当前点击点与窗口初始位置根据相对位置来移动
}
2. zui大化和zui小化
定义槽函数
//zui大化窗口槽函数
void XViewer10::MaxWindow()
{
ui.max->setVisible(false); //zui大化图标不可见
ui.normal->setVisible(true); //普通图标可见
this->showMaximized(); //当前窗口zui大化
}
void XViewer10::NormalWindow()
{
ui.normal->setVisible(false);
ui.max->setVisible(true);
this->showNormal();
}
绑定信号和槽
四、右键菜单调整预览窗口
1. 右键菜单显示窗口数量
定义右键的菜单,并添加菜单的选项
//定义一个菜单
QMenu left_menu;
auto m = left_menu.addMenu(C("视图")); //给菜单添加一个菜单
auto a = m->addAction(C("1视图")); //给菜单添加一个选项
connect(a, SIGNAL(triggered()), this, SLOT(view1())); //定义点击选项后的槽函数
a = m->addAction(C("4视图"));
connect(a, SIGNAL(triggered()), this, SLOT(view4()));
a = m->addAction(C("9视图"));
connect(a, SIGNAL(triggered()), this, SLOT(view9()));
a = m->addAction(C("16视图"));
connect(a, SIGNAL(triggered()), this, SLOT(view16()));
重载右键的处理事件
//当点击右键后会执行以下处理
void XViewer10::contextMenuEvent(QContextMenuEvent* ev)
{
//将鼠标的位置交给菜单处理,菜单会在鼠标的位置显示出来
//菜单具体的处理取决于left_menu内部的实现
left_menu.exec(QCurser::pos());
ev.accpet(); //事件处理结束
}
2. 预览窗口的显示
static QWidget *cam_wids[16] = { nullptr }; //定义存储窗口的仓库
void XViewer10::view(int count)
{
//初始化布局器
auto GLay = ui.cams->layout();
if(!GLay)
{
GLay = new QGridLayout();
GLay.setContentMargins(0, 0, 0, 0);
GLay.setSpacing(5);
ui.cams->setLayout(GLay);
}
//根据传入的窗口数量添加显示的窗口
int col = sqrt(count); //获取列数
for(int i = 0; i < count; i++)
{
if(!cam_wids[i])
{
cam_wids[i] = new QWidget();
cams[i]->setStyleSheet("background-color: rgb(0, 0, 0);");
}
//添加到布局器
GLay.addWidget(cam_wids[i], i / col, i % col);
}
//根据当前的视图数量,清除无效的窗口
for(int i = count; i < sizeof(cam_wds) / sizeof(QWidget *); i++)
{
if(cam_wds)
{
delete cam_wds[i];
cam_wds[i] = nullptr;
}
}
}
五、相机列表的增删改
1. 相机的添加
添加一个按钮,对应槽函数是生成一个对话框
设置对话框
天琥教育18年来,课程千锤百炼,历经数十次改进与创新,课程实战性、含金量高,已成功培养20多万学员走上设计岗位。更多天琥设计学校的课程详情,课程优惠,价格收费,学校地址等信息可以随时咨询在线客服或者拨打电话联系我。