亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

手把手教你實現(xiàn)漂亮的Qt?登錄界面

 更新時間:2021年11月26日 11:31:19   作者:擒拿一只咸魚干  
最近在使用Qt5,Qt?Creator做一個管理系統(tǒng)類的項目,需要用到登錄界面,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

前言

最近在使用Qt5,Qt Creator做一個管理系統(tǒng)類的項目,自然需要用到登錄界面,故記錄一下登錄界面的制作。其中一些功能的實現(xiàn)也得益于之前Qt5基礎視頻不規(guī)則窗口部分的學習。

手把手教你實現(xiàn)漂亮的登錄界面

首先看一下成品。

在這里插入圖片描述

第一步、新建一個Qwidget項目

沒必要用qmainwindow,不需要那些菜單,一般用qwidget就可以,注意勾選ui。

在這里插入圖片描述

第二步、添加界面組件

1、添加容器

在這里插入圖片描述

調整容器為合適大小,同時調整整個畫布為合適大小。

在這里插入圖片描述

2、添加按鈕,標簽,文字組件

構思:
賬號密碼部分使用Input Widgets:Line Edit
Logo和忘記密碼使用兩個Display Widgets:TextLabel
是否記住我選擇一個Buttons:CheckBox
登錄按鈕使用Buttons:PushButton

在這里插入圖片描述

3、修改組件名稱

首先修改Line Edit默認文本屬性,分別點擊兩個LineEdit修改文本屬性為Username和Password。

在這里插入圖片描述

然后其他的按鈕文本標簽直接雙擊修改名稱即可。

在這里插入圖片描述

以上兩步之后,可以得到這個樣子(這里統(tǒng)一在Wighets右邊的菜單里修改過字體,一會可以通過樣式表統(tǒng)一去改)。

在這里插入圖片描述

4、添加樣式表

類似于css,Qt具有Qss,最為關鍵的一步就是添加樣式表。在Frame容器外 畫布內 右鍵改變樣式表,輸入以下代碼。

*{
background:rgb(255, 255, 255);
font-size:15px;
font-style:MingLiU-ExtB;
}
QFrame{
border:sold 10px rgba(0,0,0);
background-image:url(H:/GUI_design/day04/image/Login_Blue5);//背景
}
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:white;
font-style:MingLiU-ExtB;
font-size:14px;
}

背景部分找“度娘”就可以。

在這里插入圖片描述

應用樣式表后展示。

在這里插入圖片描述

第三步、實現(xiàn)最小化窗口和關閉窗口功能

1、添加最小化和關閉窗口按鈕

按鈕選擇Buttons:Tool Button,最小化采用-,關閉窗口采用x。

在這里插入圖片描述

2、按鈕轉到槽

將兩個按鈕都轉到槽。

在這里插入圖片描述

3、代碼示例

轉到槽之后,只需要在相應的函數(shù)里添加close()和showMinimized()功能即可。具體的代碼如下。

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private slots:
    void on_toolButton_clicked();

    void on_toolButton_2_clicked();

private:
    Ui::Widget *ui;
};
#endif // WIDGET_H

main.cpp

#include "widget.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}

widget.cpp

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
}

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

//核心代碼就這幾行
void Widget::on_toolButton_clicked()
{
    close();
}

void Widget::on_toolButton_2_clicked()
{
    showMinimized();
}

調整畫布到合適大小

在這里插入圖片描述

展示如下:

在這里插入圖片描述

這個時候我們還需要把Widget自帶的上邊框去掉,并且去掉背景。

第四步、隱藏widget窗口邊框和背景

widget.cpp文件中添加如下兩句代碼即可。

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //去窗口邊框
        setWindowFlags(Qt::FramelessWindowHint | windowFlags());

    //把窗口背景設置為透明;
        setAttribute(Qt::WA_TranslucentBackground);
}

第五步、實現(xiàn)界面可移動

需要添加一個鼠標移動和鼠標按下事件。以*e來獲取鼠標移動或按下。
main.cpp

#include "widget.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

protected:

    void mouseMoveEvent(QMouseEvent *e);//鼠標移動
    void mousePressEvent(QMouseEvent *e);//鼠標按下移動

private slots:
    void on_close_clicked();

    void on_minimized_clicked();


private:
    Ui::Widget *ui;

     QPoint p;
};
#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include <QPainter>
#include <QMouseEvent>


Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //去窗口邊框
        setWindowFlags(Qt::FramelessWindowHint | windowFlags());

    //把窗口背景設置為透明;
        setAttribute(Qt::WA_TranslucentBackground);

}

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


void Widget::mousePressEvent(QMouseEvent *e)
{
    if(e->button() == Qt::LeftButton)
    {
        //求坐標差值
        //當前點擊坐標-窗口左上角坐標
        p = e->globalPos() - this->frameGeometry().topLeft();
    }
}

void Widget::mouseMoveEvent(QMouseEvent *e)
{
    if(e->buttons() & Qt::LeftButton)
    {
        //移到左上角
        move(e->globalPos() - p);
    }

}

void Widget::on_close_clicked()
{
    close();
}
void Widget::on_minimized_clicked()
{
    showMinimized();
}

參考:

https://www.bilibili.com/video/BV1gb411W7WE?p=2

到此這篇關于手把手教你實現(xiàn)漂亮的Qt 登錄界面的文章就介紹到這了,更多相關Qt 登錄界面內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C++符號優(yōu)先級(詳細整理)

    C++符號優(yōu)先級(詳細整理)

    C++符號優(yōu)先級,我詳細整理了一下。需要的朋友可以過來參考下。希望對大家有所幫助
    2013-10-10
  • c++實現(xiàn)跳躍表(Skip List)的方法示例

    c++實現(xiàn)跳躍表(Skip List)的方法示例

    跳表(skiplist)是一個非常優(yōu)秀的數(shù)據(jù)結構,實現(xiàn)簡單,插入、刪除、查找的復雜度均為O(logN),下面這篇文章主要介紹了c++實現(xiàn)跳躍表(Skip List)的相關資料,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。
    2017-09-09
  • C語言編程入門之程序頭文件的簡要解析

    C語言編程入門之程序頭文件的簡要解析

    這篇文章主要介紹了C語言編程入門之程序頭文件的簡要解析,包括頭文件重復包含問題等方面的說明,需要的朋友可以參考下
    2015-12-12
  • C++歸并排序算法實例

    C++歸并排序算法實例

    這篇文章主要介紹了C++歸并排序算法實例,本文先是介紹了什么是歸并排序,然后給出了實現(xiàn)代碼,需要的朋友可以參考下
    2014-10-10
  • C語言趣味編程之平分七筐魚

    C語言趣味編程之平分七筐魚

    這篇文章介紹了C語言趣味編程之平分七筐魚,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-11-11
  • OpenGL畫bezier曲線

    OpenGL畫bezier曲線

    這篇文章主要為大家詳細介紹了OpenGL畫bezier曲線,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • 深入理解goto語句的替代實現(xiàn)方式分析

    深入理解goto語句的替代實現(xiàn)方式分析

    本篇文章是對goto語句的替代實現(xiàn)方式進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C語言小程序 如何判斷兩個日期之差

    C語言小程序 如何判斷兩個日期之差

    輸入兩個日期,計算之間相差多少天。 用了兩種方法實現(xiàn),第二種利用結構體,代碼比較清晰,其余的都一樣
    2013-07-07
  • C++ 學習之旅二 說一說C++頭文件

    C++ 學習之旅二 說一說C++頭文件

    作為一個二手的.net程序員,你看到了C++頭文件一定就犯迷糊了,這到底是個啥玩意。再我糾結了24個小時, google20次,度娘10下,看過10來騙文章以后,我可能稍微開竅了。我對C++頭文件總結,與.net比較如下
    2012-11-11
  • Visual Studio 2019配置qt開發(fā)環(huán)境的搭建過程

    Visual Studio 2019配置qt開發(fā)環(huán)境的搭建過程

    這篇文章主要介紹了Visual Studio 2019配置qt開發(fā)環(huán)境的搭建過程,本文圖文并茂給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03

最新評論