QT学习(一)在QT界面显示本机信息及IP/显示一个系统时间

16 篇文章 0 订阅

QT学习(一)

这里插入图片描述
在QT界面显示本机信息及IP

void MainWindow::UiInit()
{
    QString localHostName = QHostInfo::localHostName();
    QString showStr="本机信息:";
    showStr.append(localHostName);
    showStr.append(",LocalIP:");
    showStr.append(getIP());
    ui->infoLabel->setText(showStr);
}

// 获取ip地址,获取本机ip地址(其协议为ipv4的ip地址)
QString MainWindow::getIP()
{
    //QList是Qt中一个容器模板类,是一个数组指针?
    QList<QHostAddress> list = QNetworkInterface::allAddresses();//此处的所有地址是指ipv4和ipv6的地址
    //foreach (variable, container),此处为按照容器list中条目的顺序进行迭代
    foreach (QHostAddress address, list)
    {
        if(address.protocol() == QAbstractSocket::IPv4Protocol)
            return address.toString();
    }
    return 0;
}

在这里插入图片描述
在QT界面显示一个系统时间

void MainWindow::ShowSysTime()
{
    QString timeStr=("当前系统时间:");
    QString curTime= QDateTime::currentDateTime().toString("yyyy:MM:dd hh:mm:ss");
    timeStr.append(curTime);
    ui->timeLabel->setText(timeStr);
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
由于缺乏具体的要求,以下是一个简单的网络摄像机登陆界面的实现: 1. 创建一个Qt Widgets应用程序项目。 2. 在主窗口添加一个QLabel,用于显示标题。 3. 添加三个QLineEdit,分别用于输入IP地址、用户名和密码。 4. 添加一个QPushButton,用于提交登陆信息。 5. 在QPushButton的clicked()信号上连接一个槽函数,用于验证登陆信息。 6. 在槽函数,使用QNetworkAccessManager发送HTTP请求,向摄像机发送登陆验证信息。 7. 根据请求的结果,显示登陆成功或失败的提示信息。 以下是示例代码: mainwindow.h: ```cpp #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QLabel> #include <QLineEdit> #include <QPushButton> #include <QNetworkAccessManager> #include <QNetworkReply> class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); private slots: void login(); private: QLabel *title; QLineEdit *ipEdit; QLineEdit *userEdit; QLineEdit *passEdit; QPushButton *loginBtn; QNetworkAccessManager *manager; }; #endif // MAINWINDOW_H ``` mainwindow.cpp: ```cpp #include "mainwindow.h" #include <QVBoxLayout> #include <QFormLayout> #include <QMessageBox> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { title = new QLabel("Network Camera Login"); ipEdit = new QLineEdit; userEdit = new QLineEdit; passEdit = new QLineEdit; passEdit->setEchoMode(QLineEdit::Password); loginBtn = new QPushButton("Login"); manager = new QNetworkAccessManager(this); QFormLayout *formLayout = new QFormLayout; formLayout->addRow("IP Address:", ipEdit); formLayout->addRow("Username:", userEdit); formLayout->addRow("Password:", passEdit); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(title); mainLayout->addLayout(formLayout); mainLayout->addWidget(loginBtn); QWidget *widget = new QWidget; widget->setLayout(mainLayout); setCentralWidget(widget); connect(loginBtn, &QPushButton::clicked, this, &MainWindow::login); } void MainWindow::login() { QString ip = ipEdit->text(); QString user = userEdit->text(); QString pass = passEdit->text(); QString url = QString("http://%1/login?user=%2&pass=%3").arg(ip).arg(user).arg(pass); QNetworkRequest request(url); QNetworkReply *reply = manager->get(request); while (!reply->isFinished()) { qApp->processEvents(); } if (reply->error() != QNetworkReply::NoError) { QMessageBox::warning(this, "Error", "Failed to connect to camera."); return; } QString result = QString(reply->readAll()); if (result == "OK") { QMessageBox::information(this, "Success", "Login successful."); } else { QMessageBox::warning(this, "Error", "Invalid username or password."); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值