Files
picpanel/core_form/serversetting/serversetting.cpp
2025-03-25 02:44:59 +08:00

90 lines
2.2 KiB
C++

#include "serversetting.h"
#include "ui_serversetting.h"
ServerSetting::ServerSetting(QWidget *parent) :
QWidget(parent),
ui(new Ui::ServerSetting)
{
ui->setupUi(this);
initForm();
initWidget();
}
ServerSetting::~ServerSetting()
{
delete ui;
}
void ServerSetting::setAddress(QString address)
{
ui->ledAddress->setText(address);
}
void ServerSetting::setUserName(QString username)
{
ui->ledPort->setText(username);
}
void ServerSetting::setPassword(QString password)
{
ui->ledPwd->setText(password);
}
void ServerSetting::initForm()
{
this->setWindowFlag(Qt::FramelessWindowHint);
this->setWindowFlags(this->windowFlags() | Qt::WindowSystemMenuHint | Qt::WindowMinMaxButtonsHint);
setAttribute(Qt::WA_TranslucentBackground);
ui->ledAddress->setPlaceholderText("example.com/ip:port");
ui->ledPort->setPlaceholderText("admin");
}
void ServerSetting::initWidget()
{
connect(ui->btnCencel, &QPushButton::clicked, [&](){
this->hide();
});
connect(ui->btnOk, &QPushButton::clicked, [&](){
emit okClicked(ui->ledAddress->text(), ui->ledPort->text().toInt());
this->hide();
});
this->setWindowModality(Qt::ApplicationModal);
}
void ServerSetting::on_btnOk_clicked()
{
if (ui->ledAddress->text().isEmpty() || ui->ledPort->text().isEmpty() ||
ui->ledPwd->text().isEmpty())
return;
QString address = ui->ledAddress->text();
QString userName = ui->ledPort->text();
QString password = ui->ledPwd->text();
emit signal_updateServerConfig(address, userName, password);
TCHttpService::getInstance()->setConfiguration(userName, password, address);
}
void ServerSetting::paintEvent(__attribute__((unused))QPaintEvent *event)
{
// QStyleOption opt;
// #if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
// opt.init(this);
// #else
// opt.initFrom(this);
// #endif
// QPainter painter(this);
// style()->drawPrimitive(QStyle::PE_Widget, &opt, &painter, this);
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing); // 抗锯齿
// 绘制圆角背景
QPainterPath path;
path.addRoundedRect(rect(), 15, 15); // 30px 圆角半径
painter.fillPath(path, Qt::white); // 填充白色
}