当前位置: 首页 > news >正文

白云商城网站建设wordpress清除插件

白云商城网站建设,wordpress清除插件,商城网站开发项目分工,网站编辑文章简介 Qt 中的布局有三种方式,水平布局,垂直布局,栅格布局。 通过ui设置布局 我们先创建一个窗口应用程序,程序名叫layout,基类选择QMainWindow。但我们不使用这个mainwindow,我们创建一个Qt应用程序类Log…

简介

Qt 中的布局有三种方式,水平布局,垂直布局,栅格布局。

通过ui设置布局

我们先创建一个窗口应用程序,程序名叫layout,基类选择QMainWindow。但我们不使用这个mainwindow,我们创建一个Qt应用程序类Login,Qt会为我们自动生成login.ui文件。我们进入ui文件编辑,添加一个label,提示改为用户: , 在后边添加一个lineedit控件,按住ctrl鼠标依次点击这两个控件选中后,再点击工具栏的水平布局按钮就可以看到用户label和输入框处于同一水平线了。但是输入框会被拉长,而且label和输入框占满了整个水平空间。这时我们可以通过拖动左侧控件列表中的Horizonal Spacer,将其放入用户标签的左侧,再拖动一个Horizonal Spacer将其放在输入框的右侧,就可以看到用户标签和输入框被挤在中间了,并且两侧留有空间了。Spacer可以设置几种模式,包括fixed,expanding, maximum, minimum等模式。
依次类推,我们在添加密码标签和输入框,以及登录和注册按钮,通过ui界面的控件调整布局。
https://cdn.llfc.club/1665043183045.jpg

通过代码设置布局

上面我们通过ui设置了布局,接下来我们通过代码设置布局,设置注册界面的布局
注册类的声明如下

#ifndef REGISTER_H
#define REGISTER_H#include <QDialog>
#include <memory>
using namespace std;
class  Login;
namespace Ui {
class Register;
}class Register : public QDialog
{Q_OBJECTpublic:explicit Register(QWidget *parent = nullptr);~Register();void set_login(const  weak_ptr<Login> &_login);
private:Ui::Register *ui;weak_ptr<Login> _login;QPushButton* _reg_btn;
public slots:void ShowLogin();
};#endif // REGISTER_H

因为要实现登录和注册界面之间的切换,所以Register类包含了Login类的弱指针,Register类的具体实现如下

#include "register.h"
#include "ui_register.h"
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include <QSpacerItem>Register::Register(QWidget *parent) :QDialog(parent),ui(new Ui::Register)
{ui->setupUi(this);this->setMaximumSize(QSize(300,350));this->setMinimumSize(QSize(300,350));auto vbox_layout = new QVBoxLayout();auto verticalSpacer1 = new QSpacerItem(40,20, QSizePolicy::Minimum, QSizePolicy::Expanding);vbox_layout->addItem(verticalSpacer1);QSpacerItem *name_item1 = new QSpacerItem(40,20, QSizePolicy::Fixed, QSizePolicy::Minimum);QLabel * name_label = new QLabel();name_label->setText("邮箱:");QLineEdit * name_edit = new QLineEdit();auto name_layout = new QHBoxLayout();name_layout->addItem(name_item1);name_layout->addWidget(name_label);name_layout->addWidget(name_edit);QSpacerItem *name_item2 = new QSpacerItem(40,20, QSizePolicy::Fixed, QSizePolicy::Minimum);name_layout->addItem(name_item2);vbox_layout->addLayout(name_layout);QLabel * pwd_label = new QLabel();pwd_label->setText("密码:");QLineEdit * pwd_edit = new QLineEdit();auto verticalSpacer2 = new QSpacerItem(40,20, QSizePolicy::Maximum, QSizePolicy::Maximum);vbox_layout->addItem(verticalSpacer2);auto pwd_layout = new QHBoxLayout();QSpacerItem *pwd_item2 = new QSpacerItem(40,20, QSizePolicy::Fixed, QSizePolicy::Minimum);QSpacerItem *pwd_item1 = new QSpacerItem(40,20, QSizePolicy::Fixed, QSizePolicy::Minimum);pwd_layout->addItem(pwd_item1);pwd_layout->addWidget(pwd_label);pwd_layout->addWidget(pwd_edit);pwd_layout->addItem(pwd_item2);vbox_layout->addLayout(pwd_layout);auto verticalSpacer3 = new QSpacerItem(40,30, QSizePolicy::Fixed, QSizePolicy::Maximum);vbox_layout->addItem(verticalSpacer3);QSpacerItem* reg_btn_item1 = new QSpacerItem(150,20, QSizePolicy::Fixed, QSizePolicy::Minimum);_reg_btn = new QPushButton();_reg_btn->setText("注册");auto regbtn_layout = new QHBoxLayout();regbtn_layout->addItem(reg_btn_item1);regbtn_layout->addWidget(_reg_btn,5);QSpacerItem* reg_btn_item2 = new QSpacerItem(40,20, QSizePolicy::Fixed, QSizePolicy::Minimum);regbtn_layout->addItem(reg_btn_item2);vbox_layout->addLayout(regbtn_layout);auto verticalSpacer4 = new QSpacerItem(40,20, QSizePolicy::Fixed, QSizePolicy::Expanding);vbox_layout->addItem(verticalSpacer4);this->setLayout(vbox_layout);
}Register::~Register()
{delete ui;
}void Register::set_login(const  weak_ptr<Login> &login){_login = login;
}void Register::ShowLogin()
{}

Register的构造函数中用代码的方式创建了一个垂直布局,垂直布局中增加了两个spacer,分别是verticalSpacer1和verticalSpacer4,以及三个水平布局pwd_layout,name_layout以及regbtn_layout,然后分别用代码的方式在三个布局中添加spacer和控件。
Login类的声明如下

#ifndef LOGIN_H
#define LOGIN_H#include <QDialog>
#include <memory>
class Register;
using namespace std;
namespace Ui {
class Login;
}class Login : public QDialog, public std::enable_shared_from_this<Login>
{Q_OBJECTpublic:explicit Login(QWidget *parent = nullptr);~Login();void initSignals();private slots:void on_regBtn_clicked();private:Ui::Login *ui;std::shared_ptr<Register> _register;
};#endif // LOGIN_H

Login实现如下下

#include "ui_login.h"
#include <QBitmap>
#include <QPainter>
#include "register.h"Login::Login(QWidget *parent) :QDialog(parent),ui(new Ui::Login)
{ui->setupUi(this);
}void Login::initSignals(){_register = make_shared<Register>();//从本类转化为共享的智能指针给register类_register->set_login(shared_from_this());
}Login::~Login()
{delete ui;
}void Login::on_regBtn_clicked()
{this->close();_register->show();
}

main函数的实现如下

#include "login.h"
#include <QApplication>
#include <memory>
using namespace  std;
int main(int argc, char *argv[])
{QApplication a(argc, argv);std::shared_ptr<Login> w = make_shared<Login>();w->initSignals();w->show();return a.exec();
}

点击运行按钮,程序运行起来就可以从登录界面切换到注册界面了

总结

源码链接https://gitee.com/secondtonone1/qt-learning-notes

http://www.yayakq.cn/news/776601/

相关文章:

  • 全国物流网站wordpress小程序后台
  • 网站建设合并但与那个桥西企业做网站
  • 两学一做 答题 网站品牌建设什么意思
  • 企业部门网站建设流程网站建设工程师招聘
  • 做网站代下网站建设】
  • 河北 建设厅网站首页网站做担保交易
  • 网站制作新手教程北京国企设计院排名
  • 做服装最好的网站wordpress 媒体管理
  • 戚墅堰网站建设手机开发网站教程
  • 阳谷网站建设网络推广网站建设微信托管
  • 西安网站建设eliwe小学教学活动设计方案模板
  • 网页设计师工作总结怎么把网站做seo到首页
  • 龙岩市官方网站云优化
  • 网站建设经费预算策划书能盈利的网站
  • 建筑网站的研究背景与意义wordpress 说说碎语
  • 哈密地网站建设天津做优化的网站有多少家
  • 如何注销网站备案号建设网站硬件
  • 网站物理结构优化包含网页优化吗wordpress小型商城
  • 连云港做网站制作高端网站开发设计简介
  • 上海企业建站工具西宁做网站_君博示范
  • 专业摄影网站推荐wordpress 积分充值
  • 网站建设开发步骤企业云app下载
  • 建设l旅游网站目的及功能定位关键字
  • 怎样在文章后做网站链接wordpress yusi
  • 网站建设备案图片怎么把wordpress的登录框放在首页
  • 网站建设卖东西WordPress搜狗不收录
  • 吉林沈阳网站建设全网营销案例
  • 企业网站开发报价表岳阳网站建设 熊掌号
  • 网站建站要多少钱怎么样做seo
  • 网站建设缺乏个性1免费做网站