一、展示界面效果:
第一步、新建一个Qwidget项目
第二步、添加界面组件
1、添加容器
2、添加按钮,标签,文字组件
3、修改组件名称
4、添加样式表
QWidget{
font-size:15px;
font-style:MingLiU-ExtB;
}
QFrame{
border:sold 10px rgba(0,0,0);
}
QLineEdit{
color:#8d98a1;
background-color:#405361;
font-size:16px;
border-style:outset;
border-radius:10px;
font-style:MingLiU-ExtB;
}
QPushButton{
background:#ced1d8;
border-style:outset;
border-radius:10px;
font-style:MingLiU-ExtB;
}
QPushButton:pressed{
background-color:rgb(224,0,0);
border-style:inset;
font-style:MingLiU-ExtB;
}
QCheckBox{
background:rgba(85,170,255,0);
color:white;
font-style:MingLiU-ExtB;
}
QLabel{
background:rgba(85,170,255,0);
color:black;
font-style:MingLiU-ExtB;
font-size:14px;
}
第三步、实现最小化窗口和关闭窗口功能
1、添加最小化和关闭窗口按钮
2、按钮转到槽
3、代码示例
main.cpp:
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMouseEvent>
#include <QPainter>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//去窗口边框
setWindowFlags(Qt::FramelessWindowHint|windowFlags());
//把窗口背景设置为透明
// setAttribute (Qt::WA_TranslucentBackground);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::mouseMoveEvent(QMouseEvent *e)
{
if(e->button()==Qt::LeftButton)
{
//求坐标值
//当前点击坐标-窗口左上角坐标
p=e->globalPos()-this->frameGeometry().topLeft();
}
}
void MainWindow::mousePressEvent(QMouseEvent *e)
{
if(e->buttons() & Qt::LeftButton)
{
//移到左上角
move(e->globalPos() - p);
}
}
void MainWindow::on_toolButton_2_clicked()
{
close();
}
void MainWindow::on_toolButton_clicked()
{
showMinimized();
}