Qt学习笔记之一,登录界面。

今天完成了第一个Qt项目,登录界面。


环境Qt5.1 Ubuntu 12.04 LTS


效果:

代码:

#include "mainwindow.h"
#include "ui_mainwindow.h"

CLoginDlg::CLoginDlg(QWidget *parent) :
    QDialog(parent)
{
    QLabel* usrLabel = new QLabel(tr("user name:"));
    QLabel* pwdLabel = new QLabel(tr("password:"));
    usrLineEdit = new QLineEdit;
    pwdLineEdit = new QLineEdit;
    pwdLineEdit->setEchoMode(QLineEdit::Password);

    QGridLayout* gridLayout = new QGridLayout;
    gridLayout->addWidget(usrLabel,0,0,1,1);
    gridLayout->addWidget(pwdLabel,1,0,1,1);
    gridLayout->addWidget(usrLineEdit,0,1,1,3);
    gridLayout->addWidget(pwdLineEdit,1,1,1,3);

    QPushButton* okBtn = new QPushButton(tr("OK"));
    QPushButton* cancelBtn = new QPushButton(tr("Cancel"));
    QHBoxLayout* hBoxLayout = new QHBoxLayout;
    hBoxLayout->setSpacing(60);
    hBoxLayout->addWidget(okBtn);
    hBoxLayout->addWidget(cancelBtn);

    QVBoxLayout* vBoxLayout = new QVBoxLayout;
    vBoxLayout->setMargin(40);
    vBoxLayout->addLayout(gridLayout);
    vBoxLayout->addStretch(60);
    vBoxLayout->addLayout(hBoxLayout);

    setLayout(vBoxLayout);

    QObject::connect(okBtn, SIGNAL(clicked()), this, SLOT(accept()));
    QObject::connect(cancelBtn, SIGNAL(clicked()), this, SLOT(reject()));

    setWindowTitle("login");
    resize(300,200);
}

void CLoginDlg::accept()
{
    if(usrLineEdit->text().trimmed() == tr("duan") && pwdLineEdit->text() == tr("duan"))
    {
        QMessageBox::warning(this,tr("Success!"),usrLineEdit->text(),QMessageBox::Cancel,QMessageBox::Yes);
        QDialog::accept();      //success
    }
    else
    {
        QMessageBox::warning(this,tr("Warning!"),tr("The username or the password is wrong"),QMessageBox::Cancel,QMessageBox::Yes);
        usrLineEdit->clear();
        pwdLineEdit->clear();
        usrLineEdit->setFocus();
        QDialog::reject();
    }
}

CLoginDlg::~CLoginDlg()
{
    delete usrLineEdit;
    delete pwdLineEdit;
}

继续加油!

在C语言中使用Qt框架创建一个登录界面,通常需要涉及以下几个步骤: 1. **安装和配置Qt环境**:确保你的开发环境中已经安装了Qt,并且配置了相应的编译器。 2. **创建Qt项目**:使用Qt Creator创建一个新的Qt Widgets Application项目。 3. **设计界面**:在Qt Creator的设计师(Designer)中,可以使用拖放的方式添加各种控件。对于登录界面,你通常需要两个`QLineEdit`控件用于输入用户名和密码,一个`QPushButton`作为登录按钮,以及可能的其他提示信息标签等。 4. **设置信号与槽**:在Qt中,控件之间的交互通过信号和槽(signals and slots)机制实现。你需要为登录按钮设置一个槽函数,当点击按钮时执行登录验证逻辑。 5. **编写登录逻辑代码**:在槽函数中编写处理登录的逻辑。这通常包括获取用户名和密码,然后与预设的正确值或数据库中的记录进行比较。 6. **处理登录结果**:如果用户名和密码匹配,则登录成功,可以打开一个新的窗口或界面;如果不匹配,可以显示错误信息。 下面是一个简单的示例代码框架,展示了如何在Qt中设置登录界面的控件和信号槽: ```cpp #include <QApplication> #include <QWidget> #include <QLineEdit> #include <QPushButton> #include <QLabel> #include <QVBoxLayout> class LoginWidget : public QWidget { public: LoginWidget(QWidget *parent = nullptr) : QWidget(parent) { // 创建控件 QLabel *usernameLabel = new QLabel("用户名:", this); QLineEdit *usernameEdit = new QLineEdit(this); QLabel *passwordLabel = new QLabel("密码:", this); QLineEdit *passwordEdit = new QLineEdit(this); passwordEdit->setEchoMode(QLineEdit::Password); QPushButton *loginButton = new QPushButton("登录", this); // 设置布局 QVBoxLayout *layout = new QVBoxLayout(this); layout->addWidget(usernameLabel); layout->addWidget(usernameEdit); layout->addWidget(passwordLabel); layout->addWidget(passwordEdit); layout->addWidget(loginButton); // 连接信号和槽 connect(loginButton, &QPushButton::clicked, this, &LoginWidget::onLoginClicked); } private slots: void onLoginClicked() { // 获取输入的用户名和密码 QLineEdit *usernameEdit = findChild<QLineEdit*>("usernameEdit"); QLineEdit *passwordEdit = findChild<QLineEdit*>("passwordEdit"); // 这里应该添加验证逻辑 QString username = usernameEdit->text(); QString password = passwordEdit->text(); // 登录逻辑处理(省略具体实现) // ... } }; int main(int argc, char *argv[]) { QApplication app(argc, argv); LoginWidget loginWidget; loginWidget.show(); return app.exec(); } ``` 这段代码定义了一个简单的登录窗口类`LoginWidget`,其中包含了登录界面的控件,并连接了按钮点击事件到槽函数`onLoginClicked`,在这个槽函数中,你可以添加验证用户名和密码的逻辑。实际应用中,你需要进一步实现密码的验证逻辑,比如比对输入和数据库中的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值