serversetting.cpp 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #include "serversetting.h"
  2. #include "ui_serversetting.h"
  3. ServerSetting::ServerSetting(QWidget *parent) :
  4. QWidget(parent),
  5. ui(new Ui::ServerSetting)
  6. {
  7. ui->setupUi(this);
  8. initForm();
  9. initWidget();
  10. }
  11. ServerSetting::~ServerSetting()
  12. {
  13. delete ui;
  14. }
  15. void ServerSetting::setAddress(QString address)
  16. {
  17. ui->ledAddress->setText(address);
  18. }
  19. void ServerSetting::setUserName(QString username)
  20. {
  21. ui->ledPort->setText(username);
  22. }
  23. void ServerSetting::setPassword(QString password)
  24. {
  25. ui->ledPwd->setText(password);
  26. }
  27. void ServerSetting::initForm()
  28. {
  29. this->setWindowFlag(Qt::FramelessWindowHint);
  30. this->setWindowFlags(this->windowFlags() | Qt::WindowSystemMenuHint | Qt::WindowMinMaxButtonsHint);
  31. setAttribute(Qt::WA_TranslucentBackground);
  32. ui->ledAddress->setPlaceholderText("example.com/ip:port");
  33. ui->ledPort->setPlaceholderText("admin");
  34. }
  35. void ServerSetting::initWidget()
  36. {
  37. connect(ui->btnCencel, &QPushButton::clicked, [&](){
  38. this->hide();
  39. });
  40. connect(ui->btnOk, &QPushButton::clicked, [&](){
  41. emit okClicked(ui->ledAddress->text(), ui->ledPort->text().toInt());
  42. this->hide();
  43. });
  44. this->setWindowModality(Qt::ApplicationModal);
  45. }
  46. void ServerSetting::on_btnOk_clicked()
  47. {
  48. if (ui->ledAddress->text().isEmpty() || ui->ledPort->text().isEmpty() ||
  49. ui->ledPwd->text().isEmpty())
  50. return;
  51. QString address = ui->ledAddress->text();
  52. QString userName = ui->ledPort->text();
  53. QString password = ui->ledPwd->text();
  54. emit signal_updateServerConfig(address, userName, password);
  55. TCHttpService::getInstance()->setConfiguration(userName, password, address);
  56. }
  57. void ServerSetting::paintEvent(__attribute__((unused))QPaintEvent *event)
  58. {
  59. // QStyleOption opt;
  60. // #if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
  61. // opt.init(this);
  62. // #else
  63. // opt.initFrom(this);
  64. // #endif
  65. // QPainter painter(this);
  66. // style()->drawPrimitive(QStyle::PE_Widget, &opt, &painter, this);
  67. QPainter painter(this);
  68. painter.setRenderHint(QPainter::Antialiasing); // 抗锯齿
  69. // 绘制圆角背景
  70. QPainterPath path;
  71. path.addRoundedRect(rect(), 15, 15); // 30px 圆角半径
  72. painter.fillPath(path, Qt::white); // 填充白色
  73. }