1.使用信號和槽實現多個界面跳轉
1.1準備兩個界面
1.2第一個界面準備signal
1.3第二個界面準備slot
1.4將第一個界面的信號和槽進行連接
2.qss登錄界面升級優化
2.1概念
Qss是Qt程序界面中用來設置控件的背景圖片、大小、字體顏色、字體類型、按鈕狀態變化等屬性,它是用來美化UI界面。實現界面和程序的分離,快速切換界面。
優點:實現簡單、便捷
2.2語法:
3.發布軟件
4.對話框
對話框的種類:消息對話框、字體對話框、顏色對話框、文件對話框
4.1 消息對話框 QMessageBox
該類給用戶提供了一種交互式的彈窗,提供了兩種實現版本,分別是基于屬性版本和基于靜態成員函數版本。
消息對話框種類: 警告對話框、問題對話框、信息對話框、錯誤對話框
4.1.1 基于屬性版本
//警告按鈕對應的槽函數處理
void Widget::on_warBtn_clicked()
{
? ? //彈出警告對話框
? ? QMessageBox msg(
? ? ? ? ? ? ? ? QMessageBox::Warning,//對話框圖標
? ? ? ? ? ? ? ? "警告",//對話框標題
? ? ? ? ? ? ? ? "放學后,你等著",//提示文本
? ? ? ? ? ? ? ? QMessageBox::Yes | QMessageBox::No, //提供的按鈕
? ? ? ? ? ? ? ? this); //指定父組件
? ? //調用exec()彈出對話框
? ? int ret = msg.exec();
4.1.2 基于靜態成員函數版本
? ? //調用QMessageBox的靜態成員函數 ?彈出對話框
? ? int ret = QMessageBox::question(this, //指定父組件
? ? ? ? ? ? ? ? ? ? ? ? ? "問題",//標題
? ? ? ? ? ? ? ? ? ? ? ? ? "同學們,你們餓嗎?",//文本
? ? ? ? ? ? ? ? ? ? ? ? ? QMessageBox::Yes | QMessageBox::No);//提供按鈕
? ? //根據用戶選中的按鈕 執行不同的功能
? ? if(ret == QMessageBox::Yes)
? ? {
? ? ? ? qDebug() << "好餓,趕緊下課,干飯干飯";
? ? }
? ? else
? ? {
? ? ? ? qDebug() << "我愛學習,餓是什么";
? ? }
?
4.2 字體對話框 QFontDialog
作業
#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_pushButton_clicked()
{QString uname;QString pword;uname=ui->ed1->text();pword=ui->ed2->text();if(uname=="admin" && pword=="123456"){QMessageBox msg(QMessageBox::Information,"信息","登錄成功",QMessageBox::Ok,this);int ret = msg.exec();if(ret==QMessageBox::Ok){this->close();emit jump_signal();}}else{int ret=QMessageBox::critical(this,"信息","賬號和密碼不匹配,是否重新登錄",QMessageBox::Yes |QMessageBox::No);if(ret==QMessageBox::Yes){ui->ed2->clear();}else if(ret==QMessageBox::No){this->close();}}
}void Widget::on_pushButton_2_clicked()
{int ret=QMessageBox::question( this,"問題","您是否要退出",QMessageBox::Yes | QMessageBox::No);if(ret==QMessageBox::Yes){this->close();}else if(ret==QMessageBox::No){}}