Qt制作简单配置窗口

隔壁老王
• 阅读 1725

在上一篇登录操作之后

新建设计类

Qt制作简单配置窗口

Qt制作简单配置窗口

记录用户信息及服务端连接信息

头文件

#ifndef CLIENTCONFIG_H
#define CLIENTCONFIG_H

#include <QWidget>
#include <QDialog>
#include"fileoperation.h"
namespace Ui {
class clientconfig;
}

class clientconfig : public QDialog
{
    Q_OBJECT

public:
    explicit clientconfig(QDialog *parent = 0);
    ~clientconfig();
     fileConfig cl_cfg;
private:
    Ui::clientconfig *ui;
signals:
    // 定义信号函数
    void sendUserPwd(QString, QString);
};

#endif // CLIENTCONFIG_H

源文件

clientconfig::clientconfig(QDialog *parent) :
    QDialog(parent),
    ui(new Ui::clientconfig)
{
    ui->setupUi(this);
    // 固定登录大小窗口
    this->setFixedSize(300, 400);
    // json文件单例对象
    FileOperation *op = FileOperation::getInstance();
    // 监听打开文件
    connect(ui->OpenFile,&QPushButton::clicked, this,[&](){
        // 模态方式选取文件筐
        QString path = QFileDialog::getOpenFileName(this, "打开文件");
        // 显示路径
        ui->Path->setText(path);
        // 尝试读取配置文件
        op->readConif(&cl_cfg);
        ui->Address->setText(cl_cfg.ip);
        ui->Name->setText(cl_cfg.username);
        ui->Password->setText(cl_cfg.password);
        ui->Port->setText(cl_cfg.port);
    });
    // 监听返回按钮
    connect(ui->Back, &QPushButton::clicked, this, [&](){
        // 发送信号
        emit sendUserPwd(cl_cfg.username,cl_cfg.password);
        // 隐藏
        this->hide();
    });

    // 监听保存
    connect(ui->Save, &QPushButton::clicked, this, [&](){
        cl_cfg.ip = ui->Address->text();
        cl_cfg.username = ui->Name->text();
        cl_cfg.filepath = ui->Path->text();
        cl_cfg.port = ui->Port->text();
        cl_cfg.password = ui->Password->text();
        op->writeConfig(cl_cfg);
        // 弹出保存成功提示
        QMessageBox::information(nullptr,  "result",  "save ok!", QMessageBox::Yes, QMessageBox::Yes);
    });

    if(op->readConif(&cl_cfg))
    {
        ui->Address->setText(cl_cfg.ip);
        ui->Name->setText(cl_cfg.username);
        ui->Path->setText(cl_cfg.filepath);
        ui->Password->setText(cl_cfg.password);
        ui->Port->setText(cl_cfg.port);
    }
}

clientconfig::~clientconfig()
{
    delete ui;
}

完整代码在码云上持续更新中。。

https://gitee.com/YiZhiLuGuoDeXiaoMaNong/personnel-management

点赞
收藏
评论区
推荐文章
秃头王路飞 秃头王路飞
4个月前
webpack5手撸vue2脚手架
webpack5手撸vue相信工作个12年的小伙伴们在面试的时候多多少少怕被问到关于webpack方面的知识,本菜鸟最近闲来无事,就尝试了手撸了下vue2的脚手架,第一次发帖实在是没有经验,望海涵。languageJavaScript"name":"vuecliversion2","version":"1.0.0","desc
隔壁老王 隔壁老王
1年前
Qt简单使用表格
接在Qt简单登录后https://www.helloworld.net/p/4enJFnZUQAC8G添加新文件使用的组件tableweight和tableview头文件cifndefMANAGEMENTHdefineMANAGEMENTHinclude<QWidgetinclude<QMouseEventnamespaceUicl
隔壁老王 隔壁老王
1年前
Qt文件和json
qt中创建普通c类头文件cppifndefOPERATIONHdefineOPERATIONHinclude<QFile//默认配置文件路径constQStringFilePath"./config.json";typedefstructFileConfigQStringip;QStringport;QS
Stella981 Stella981
1年前
C# Aspose.Cells导出xlsx格式Excel,打开文件报“Excel 已完成文件级验证和修复。此工作簿的某些部分可能已被修复或丢弃”
报错信息:最近打开下载的Excel,会报如下错误。(xls格式不受影响)!(https://oscimg.oschina.net/oscnet/2b6f0c8d7f97368d095d9f0c96bcb36d410.png)!(https://oscimg.oschina.net/oscnet/fe1a8000d00cec3c
Stella981 Stella981
1年前
Linux查看GPU信息和使用情况
1、Linux查看显卡信息:lspci|grepivga2、使用nvidiaGPU可以:lspci|grepinvidia!(https://oscimg.oschina.net/oscnet/36e7c7382fa9fe49068e7e5f8825bc67a17.png)前边的序号"00:0f.0"是显卡的代
Stella981 Stella981
1年前
Linux日志系统
一、Linux系统日志与分类内核及系统日志:这种日志数据由系统服务syslog统一管理,根据其主配置文件"/etc/syslog.conf"中的设置决定将内核消息及各种系统程序消息记录到什么位置。用户日志:这种日志数据用于记录Linux系统用户登录及退出系统的相关信息,包括用户名、登录的终端、登录
Wesley13 Wesley13
1年前
030 SSM综合练习06
1.权限操作涉及的三张表(1)用户表信息描述users!(https://oscimg.oschina.net/oscnet/a4a2b1f943cbc2db1c8ddd613e7ed00a9ae.png)sql语句:CREATETABLEusers(idVARCHAR2(32)DEFAU
Stella981 Stella981
1年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
1年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Stella981 Stella981
1年前
Nginx反向代理upstream模块介绍
!(https://oscimg.oschina.net/oscnet/1e67c46e359a4d6c8f36b590a372961f.gif)!(https://oscimg.oschina.net/oscnet/819eda5e7de54c23b54b04cfc00d3206.jpg)1.Nginx反
隔壁老王
隔壁老王
Lv1
千万程序员队伍中的一员。我住隔壁我姓王,同事们亲切得称呼我隔壁老王
17
文章
2
粉丝
7
获赞