1:实现效果:
![](https://img-blog.csdnimg.cn/img_convert/e496bb66a86d847dc6237b96a2648dfc.png)
存在不足:微信登录的按钮长宽是493 x 50, 而图片的长宽是400 x 50,倒置图片没能居中显示。
整体UI布局,采用垂直布局
部分实现代码:
#include "tencentmettinglogin.h"
#include "ui_tencentmettinglogin.h"
tencentMettingLogin::tencentMettingLogin(QWidget *parent)
: QWidget(parent)
, ui(new Ui::tencentMettingLogin)
{
ui->setupUi(this);
this->setWindowFlags(Qt::FramelessWindowHint|Qt::WindowMinMaxButtonsHint);
ui->btnSet->setText("");
ui->btnSet->setStyleSheet("QPushButton{background-image:url(:/ch21_TencentMeetingLogin/resources/set.png);border:none} \
QPushButton::hover{background-color:rgb(99,99,99)}");
ui->btnMin->setText("");
ui->btnMin->setStyleSheet("QPushButton{background-image:url(:/ch21_TencentMeetingLogin/resources/min.png);border:none} \
QPushButton::hover{background-color:rgb(99,99,99)}");
ui->btnClose->setText("");
ui->btnClose->setStyleSheet("QPushButton{background-image:url(:/ch21_TencentMeetingLogin/resources/close.png);border:none} \
QPushButton::hover{background-color:rgb(99,99,99)}");
ui->label_logo->clear();
QPixmap* pix = new QPixmap(":/ch21_TencentMeetingLogin/resources/logo.jpg");
pix->scaled(ui->label_logo->size(), Qt::KeepAspectRatio);
ui->label_logo->setScaledContents(true);
ui->label_logo->setPixmap(*pix);
ui->btnWeichatLogin->setText("");
ui->btnWeichatLogin->setStyleSheet("QPushButton{background-image:url(:/ch21_TencentMeetingLogin/resources/weichatlogin.png);border:none} \
QPushButton::hover{background-color:rgb(99,99,99)}");
ui->toolBtnPhone->setIcon(QIcon(":/ch21_TencentMeetingLogin/resources/phonelogin.png"));
ui->toolBtnPhone->setIconSize(QSize(60, 60));
ui->toolBtnPhone->setText(u8"手机号");
ui->toolBtnPhone->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
ui->toolBtnPhone->setStyleSheet("background-color:white;border:none");
ui->toolBtnEnpriseWeichat->setIcon(QIcon(":/ch21_TencentMeetingLogin/resources/enpriseweichat.png"));
ui->toolBtnEnpriseWeichat->setIconSize(QSize(60, 60));
ui->toolBtnEnpriseWeichat->setText(u8"企业微信");
ui->toolBtnEnpriseWeichat->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
ui->toolBtnEnpriseWeichat->setStyleSheet("background-color:white;border:none");
ui->toolBtnSSO->setIcon(QIcon(":/ch21_TencentMeetingLogin/resources/sso.png"));
ui->toolBtnSSO->setIconSize(QSize(60, 60));
ui->toolBtnSSO->setText(u8"SSO");
ui->toolBtnSSO->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
ui->toolBtnSSO->setStyleSheet("background-color:white;border:none");
connect(ui->btnClose, &QPushButton::clicked, [=] {
close();
});
}
tencentMettingLogin::~tencentMettingLogin()
{
delete ui;
}