QT作業2

使用手動連接,將登錄框中的取消按鈕使用qt4版本的連接到自定義的槽函數中,在自定義的槽函數中調用關閉函數

將登錄按鈕使用qt5版本的連接到自定義的槽函數中,在槽函數中判斷ui界面上輸入的賬號是否為"admin",密碼是否為"123456",如果賬號密碼匹配成功,則輸出“登錄成功”,并關閉該界面,如果匹配失敗,則輸出登錄失敗,并將密碼框中的內容清空

頭文件:

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QDebug>
#include <QIcon>
#include <QLabel>      //標簽類
#include <QMovie>      //動圖類
#include <QLineEdit>   //行編輯器類
#include <QPushButton> //按鈕類QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();signals:void my_signal1();public slots:void my_slots1();void my_slots2();private:Ui::Widget *ui;QLabel *lab1;QLabel *lab2;QLabel *lab3;QLineEdit *edit1;QLineEdit *edit2;QPushButton *btn1;QPushButton *btn2;
};
#endif // WIDGET_H

源文件:

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//設置并固定窗口大小this->setFixedSize(600,500);
//    //設置窗口的圖片
//    this->setWindowIcon(QIcon(":/pictrue/1.jpg"));
//    //設置窗口的標題
//    this->setWindowTitle("登錄賬號界面");this->setWindowFlag(Qt::FramelessWindowHint);//創建一個標簽類指針同時將父對象設為當前this指針指向的對象wlab1 = new QLabel(this);//設置標簽大小lab1->resize(600,150);//創建一個動圖類指針接收動圖QMovie *mv = new QMovie(":/pictrue/dt.gif");//將動圖放入標簽中lab1->setMovie(mv);//讓動圖動起來mv->start();//自動適應lab1lab1->setScaledContents(true);//創建一個標簽類指針同時將父對象設為當前this指針指向的對象wlab2 = new QLabel(this);//設置標簽的大小lab2->resize(50,50);//移動標簽的位置lab2->move(170,200);//設置標簽的圖片lab2->setPixmap(QPixmap(":/pictrue/2.jpg"));//自動適應lab2lab2->setScaledContents(true);//創建一個標簽類指針同時將父對象設為當前this指針指向的對象wlab3 = new QLabel(this);//設置標簽的大小lab3->resize(50,50);//移動標簽的位置lab3->move(170,260);//設置標簽的圖片lab3->setPixmap(QPixmap(":/pictrue/3.jpg"));//自動適應lab3lab3->setScaledContents(true);//創建一個行編輯器類的指針同時將父對象設為當前this指針指向的對象wedit1 = new QLineEdit(this);//設置行編輯器的大小edit1->resize(200,50);//移動行編輯器的位置edit1->move(220,200);//占位edit1->setPlaceholderText("賬號");//創建一個行編輯器類的指針同時將父對象設為當前this指針指向的對象wedit2 = new QLineEdit(this);//設置行編輯器的大小edit2->resize(200,50);//移動行編輯器的位置edit2->move(220,260);//占位edit2->setPlaceholderText("密碼");//設置顯示模式edit2->setEchoMode(QLineEdit::Password);//創建一個按鈕類的指針同時設置文本并將父對象設為當前this指針指向的對象wbtn1 = new QPushButton("登錄",this);//設置按鈕大小btn1->resize(140,50);//移動按鈕的位置btn1->move(150,350);//設置按鈕的顏色btn1->setStyleSheet("background-color:rgb(40,200,250)");//創建一個按鈕類的指針同時設置文本并將父對象設為當前this指針指向的對象wbtn2 = new QPushButton("取消",this);//設置按鈕大小btn2->resize(140,50);//移動按鈕的位置btn2->move(300,350);//設置按鈕的顏色btn2->setStyleSheet("background-color:rgb(40,200,250)");//手動連接信號和自定義的槽函數 基于qt4版的連接  btn2發信號給當前窗口connect(btn2,SIGNAL(clicked()),this,SLOT(my_slots1()));//手動連接信號和自定義的槽函數 基于qt5版的連接 btn1發信號給當密碼編輯器connect(btn1,&QPushButton::clicked,this,&Widget::my_slots2);
}Widget::~Widget()
{delete ui;
}//自定義的槽函數
void Widget::my_slots1()
{//關閉當前窗口this->close();
}void Widget::my_slots2()
{//檢查賬號密碼是否正確if(edit1->text() == "admin" && edit2->text() == "123456"){qDebug() << "登錄成功";//成功則關閉窗口this->close();}else{qDebug() << "登錄失敗";//失敗則清空密碼編輯器的內容edit2->setText("");}
}

主函數文件:

#include "widget.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

運行結果:

思維導圖:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/208466.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/208466.shtml
英文地址,請注明出處:http://en.pswp.cn/news/208466.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Navicat 技術指引 | 適用于 GaussDB 分布式的數據查看器

Navicat Premium&#xff08;16.3.3 Windows 版或以上&#xff09;正式支持 GaussDB 分布式數據庫。GaussDB 分布式模式更適合對系統可用性和數據處理能力要求較高的場景。Navicat 工具不僅提供可視化數據查看和編輯功能&#xff0c;還提供強大的高階功能&#xff08;如模型、結…

微服務學習:Nacos微服務架構中的服務注冊、服務發現和動態配置Nacos下載

Nacos的主要用途包括&#xff1a; 服務注冊與發現&#xff1a;Nacos提供了服務注冊和發現的功能&#xff0c;服務提供者可以將自己的服務注冊到Nacos服務器上&#xff0c;服務消費者則可以通過Nacos來發現可用的服務實例&#xff0c;從而實現服務調用。 動態配置管理&#xff…

聚觀早報 |華為暢享 70正式開售;夢餉科技雙12玩法

【聚觀365】12月8日消息 華為暢享 70正式開售 夢餉科技雙12玩法 華為Mate X5應對火海挑戰 谷歌發布AI模型Gemini 字節跳動開啟新一輪回購 華為暢享 70正式開售 精致外觀與創新科技兼具的華為暢享 70正式開售&#xff0c;1199元起搭載6000mAh超大電池&#xff0c;帶來超強…

機器視覺相機鏡頭光源選型

鏡頭選型工具 - HiTools - 海康威視 Hikvisionhttps://www.hikvision.com/cn/support/tools/hitools/cl8a9de13648c56d7f/ 海康機器人-機器視覺產品頁杭州海康機器人股份有限公司海康機器人HIKROBOT是面向全球的機器視覺和移動機器人產品及解決方案提供商&#xff0c;業務聚焦于…

oracle與sqlsever的區別

oracle與sqlsever的區別 區別一 oracle字符之間連接用|| sqlserver字符之間連接用區別二 oracle字段重命名用as sqlserver字段重命名用區別三 oracle判空用nvl sqlserver判空用isnull區別四 oracle多列合并成一列 select assid, LISTAGG(name, ) within group (order by…

Navicat 技術指引 | 適用于 GaussDB 分布式的數據生成功能

Navicat Premium&#xff08;16.3.3 Windows 版或以上&#xff09;正式支持 GaussDB 分布式數據庫。GaussDB 分布式模式更適合對系統可用性和數據處理能力要求較高的場景。Navicat 工具不僅提供可視化數據查看和編輯功能&#xff0c;還提供強大的高階功能&#xff08;如模型、結…

GPTs的創建與使用,自定義GPTs中的Actions示例用法 定義和執行特定任務的功能模塊 通過API與外部系統或服務的交互

Name 等 Logo:自動生成 Name 介紹 Description 介紹 Instructions 要求或命令等 比如用中文回復&#xff0c;角色。 Knowledge 上傳你的知識庫&#xff0c;如果你有某一垂直行業的數據&#xff0c;基于數據來回答。比如我有某個芯片的指令集。 Capabilities 都要 Actions&…

Flink 使用場景

Apache Flink 功能強大&#xff0c;支持開發和運行多種不同種類的應用程序。它的主要特性包括&#xff1a;批流一體化、精密的狀態管理、事件時間支持以及精確一次的狀態一致性保障等。Flink 不僅可以運行在包括 YARN、 Mesos、K8s 在內的多種資源管理框架上&#xff0c;還支持…

工業IC是什么

工業IC 電子元器件百科 文章目錄 工業IC前言一、工業IC是什么二、工業IC的類別三、工業IC應用實例四、工業IC作用原理總結前言 工業IC包括微控制器(MCU)、采樣芯片、模擬-數字轉換器(ADC)、電源管理芯片、驅動芯片等。它們被廣泛應用于各個行業的工業控制和自動化系統中,…

2023年泰國加密市場概覽

一、泰國區塊鏈及加密生態概覽 1.加密貨幣數據分析平臺訪問人數火爆 2023年CoinMarketCap網站的平均月訪問量為64.8萬人次&#xff0c;占全國總人口的0.94%&#xff0c;泰國的人均訪問量比美國高出0.21%。 1.2泰國加密資產交易量可觀 根據CoinGecko上泰國領先的數字資產交易所…

vue3遞歸組件---樹形組件

第一種方式&#xff0c;直接自己調用自己 Tree.vue <template><div class"tree"><div v-for"(item, index) in data" :key"item.name">每一層 {{ item.name }}<Tree v-if"item?.children?.length" :dataitem…

linux如何清空文件內容

在做系統運維工作時&#xff0c;有時會發現一個問題&#xff1a;某些存儲空間的使用率過高。換句話說就是空間快被堆滿了&#xff0c;需要釋放空間。大多數情況下&#xff0c;導致空間不足的罪魁禍首通常是一些log日志文件。對于某些特殊系統來說&#xff0c;日志文件還不能直接…

AGM離線下載器使用說明

AGM專用離線下載器示意圖&#xff1a; 供電方式&#xff1a; 通過 USB 接口給下載器供電&#xff0c;跳線 JP 斷開。如果客戶 PCB 的 JTAG 口不能提供 3.3V 電源&#xff0c;或僅需燒寫下載器&#xff0c;尚未連接用戶 PCB 時&#xff0c;采用此種方式供電。 或者&#xff1a…

Linux中的網絡時間服務器

本章主要介紹網絡時間的服務器 使用chrony配置時間服務器配置chrony客戶端服務器同步時間 1.1 時間同步的重要性 一些服務對時間要求非常嚴格&#xff0c;例如如圖所示的由三臺服務器搭建的ceph集群 這三臺服務器的時間必須保持一致&#xff0c;如果不一致&#xff0c;就會顯…

Django講課筆記01:初探Django框架

文章目錄 一、學習目標二、課程導入&#xff08;一&#xff09;課程簡介&#xff08;二&#xff09;課程目標&#xff08;三&#xff09;適用人群&#xff08;四&#xff09;教學方式&#xff08;五&#xff09;評估方式&#xff08;六&#xff09;參考教材 三、新課講授&#…

android項目實戰之編輯器集成

引言 項目需要用到編輯器&#xff0c;采用RichEditor&#xff0c;如下效果 實現 1. 引入庫2 implementation jp.wasabeef:richeditor-android:2.0.0 2. XML <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width&q…

LeetCode:2008. 出租車的最大盈利(dp C++)

目錄 2008. 出租車的最大盈利 題目描述&#xff1a; 實現代碼與解析&#xff1a; DP 二分&#xff08;兩種寫法&#xff09; 原理思路&#xff1a; 2008. 出租車的最大盈利 題目描述&#xff1a; 你駕駛出租車行駛在一條有 n 個地點的路上。這 n 個地點從近到遠編號為 1 …

如何使用 Wordpress?托管, 網站, 插件, 緩存

這是該系列教程的第一個教程&#xff0c;最終將在運行高性能 LEMP 堆棧的阿里云 ECS 實例上運行一個新的 WordPress 站點。 在本教程中&#xff0c;我們將創建一個運行 Ubuntu 16.04 的實例&#xff0c;然后通過創建超級用戶并禁用 root 登錄來保護服務器&#xff0c;最后配置…

持續集成交付CICD:使用Maven命令下載Nexus制品

目錄 一、實驗 1.Maven安裝 2.Nexus搭建公共組倉庫及Maven全局配置文件 3.使用Maven命令下載Nexus制品 一、實驗 1.Maven安裝 &#xff08;1&#xff09;CentOS環境安裝步驟 tar -xf apache-maven-3.8.6-bin.tar.gz #解壓 mv apache-maven-3.8.6 /usr/local/maven #移動…

如何進行更好的面試回復之緩存函數在項目中的性能優化?

緩存函數是一種提高函數性能的技術&#xff0c;在函數被調用時&#xff0c;會將計算結果緩存起來&#xff0c;以便在后續的調用中直接返回緩存的結果&#xff0c;從而減少了重復計算的時間。 緩存函數的實現通常包括兩個步驟&#xff1a; 判斷緩存是否存在&#xff1a;在函數被…