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

phpstud可以做几个网站网站模板设计

phpstud可以做几个网站,网站模板设计,wordpress 常见漏洞,怎样做直播网站参考: C GUI Programming with Qt 4, Second Edition 本地环境: win10专业版,64位,Qt5.12 目录 实现效果基本流程逐步实操1)创建和初始化子部件2)把子部件放进布局中3)设置tab顺序4&#xff09…

参考:
C++ GUI Programming with Qt 4, Second Edition

本地环境:
win10专业版,64位,Qt5.12


目录

  • 实现效果
  • 基本流程
  • 逐步实操
    • 1)创建和初始化子部件
    • 2)把子部件放进布局中
    • 3)设置tab顺序
    • 4)连接信号和槽 5)实现自定义的槽
  • 使用QDialogButtonBox
    • 拖动绘制
    • 代码
  • 排错
    • 设置了windowIcon但不显示

实现效果

打码的是logo。
在这里插入图片描述

基本流程

创建dialog的流程:

  1. 创建和初始化子部件;
  2. 把子部件放进布局中;
  3. 设置tab顺序;
  4. 连接信号和槽;
  5. 实现自定义的槽。

逐步实操

现在一步一步操作:

**注意:**我一开始是用Qt Creator的设计页面做的,所以截图都是设计页面,但是Qt Creator没有预览,稍微有点不方便,因此第三步我换到Qt Designer了,操作是一样的。

1)创建和初始化子部件

先新建一个dialog。
在这里插入图片描述
然后打开设计页面,放置几个小组件,如下图所示。不要在意对齐,后面会使用自动对齐:
在这里插入图片描述
各个对象的名称和所属的类如下图所示:
在这里插入图片描述
需要修改的属性有:

  • 左侧是okButton,修改text为OK,设置enable为false,设置default为true。default表示按回车会触发。
  • 右侧是cancelButton,需改text为cancel

然后需要设置label的buddy是lineEdit。

点击菜单栏-编辑-Edit buddies,然后左键点击label,出现箭头后拖动,连接到lineEdit上,如下图所示。
在这里插入图片描述
这样buddy就设置成功了。点击编辑菜单栏返回,也可以点击上方的工具条:
在这里插入图片描述

2)把子部件放进布局中

按住ctrl,然后依次选择label和lineEdit,单击工具条上的水平布局,此时布局成功:
在这里插入图片描述
然后对spacer和两个按钮做水平布局。随后,反选,单击垂直布局:
在这里插入图片描述
现在变成:
在这里插入图片描述
可以看到,窗口大小似乎偏大,点击工具条上的调整大小按钮,变成了最优尺寸:
在这里插入图片描述

3)设置tab顺序

设置tab顺序就是部件接受焦点(focus)的顺序,点击的是工具条上带数字的灰色按钮:
在这里插入图片描述
因为想要预览效果,我用Qt Designer打开了文件。

点击窗体-预览,可以看到各种风格下的效果。
在这里插入图片描述
windowsvista风格:
在这里插入图片描述

windows风格
在这里插入图片描述

fushion风格
在这里插入图片描述
那么如何套用这个格式呢?

在main.cpp中这样写:

#include <QApplication>
#include "ui_toolbasic.h"int main(int argc, char *argv[])
{QApplication a(argc, argv);Ui::toolBasic ui;QDialog *dialog = new QDialog;ui.setupUi(dialog);dialog->show();return a.exec();
}

显示效果:logo显示正确。
在这里插入图片描述
代码说明:
ui_toolbasic.h是前面拖动后自动产生的文件,打开可以看到很多关于布局、绘制的代码:
在这里插入图片描述

4)连接信号和槽 5)实现自定义的槽

要实现的效果:限制lineEdit的输入格式,要求以字母开始,后跟一个数字,再跟0-2个数字。只有满足要求时,OK按钮才生效。
在这里插入图片描述

main.cpp


#include <QApplication>
//#include "ui_toolbasic.h"
#include "toolbasic.h"int main(int argc, char *argv[])
{QApplication a(argc, argv);toolBasic* tb = new toolBasic;tb->show();return a.exec();
}

toolbasic.h

#ifndef TOOLBASIC_H
#define TOOLBASIC_H#include <QDialog>
// 增加ui这一行,第一步生成form时是没有的
#include "ui_toolbasic.h"namespace Ui {
class toolBasic;
}// 声明
class QWidget;class toolBasic : public QDialog, public Ui::toolBasic
{Q_OBJECTpublic://explicit toolBasic(QWidget *parent = nullptr);// 注释掉自动生成的构造函数,重写一个toolBasic(QWidget *parent = 0);~toolBasic();private:Ui::toolBasic *ui;
// 新增槽函数
private slots:void on_lineEdit_textChanged();};#endif // TOOLBASIC_H

toolBasic.cpp
需要注意的是, setupUi()会自动连接一些槽函数,只要槽函数满足格式:on_objectName_signalName(),也就是会蒋objectNamesignalName()连接起来,不用另外写。

因此,上面新增了槽函数on_lineEdit_textChanged()等于执行到setupUi()时,自动实现了这个连接:
connect(lineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(on_lineEdit_textChanged()));

所以只需要实现这个槽函数,就能实现lineEdit内容改变后的自动处理过程。

#include "toolbasic.h"
#include <QRegularExpressionValidator>
#include <QWidget>toolBasic::toolBasic(QWidget *parent) :QDialog(parent),ui(new Ui::toolBasic)
{// setupUi()会自动连接一些槽函数,只要槽函数满足格式:on_objectName_signalName()setupUi(this);// 要求:以字母开头,后跟一个数字(1-9),然后跟0-2个数字(0-9)QRegularExpression regExp("[A-Za-z][1-9][0-9]{0,2}");lineEdit->setValidator(new QRegularExpressionValidator(regExp, this));// 把okButton连到QDialog::accept()槽函数. // accept()关闭对话框,但是设置dialog的结果是QDialog::Accepted,也就是1connect(okButton, SIGNAL(clicked()), this, SLOT(accept()));// 把cancelButton连到QDialog::reject()// reject()也关闭对话框,但是设置结果为QDialog::Rejected,也就是0connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));}toolBasic::~toolBasic()
{delete ui;
}void toolBasic::on_lineEdit_textChanged() {// lineEdit有合法输入时,开启ok按钮okButton->setEnabled(lineEdit->hasAcceptableInput());
}

使用QDialogButtonBox

效果:
在这里插入图片描述
在创建界面时选择:Dialog with Buttons Bottom,起名myDialog。 (不要用这个,会报错)diyDialog。

拖动绘制

与前面相似,就是两个button变成了一个buttonBox。如果需要特殊一点的对齐,需要把预先出现在面板上的buttonBox删掉,不然spacer是放不好的。如果不删的话,上面两个connect也是自动实现了的,不用写。

另外,调整最佳尺寸的按钮会失效,需要手动调整尺寸。(自动的会很小,因为只有两个小组件)
在这里插入图片描述

代码

diydialog.h和main.cpp跟前面类似,不再重复。diydialog.cpp需要做一点修改:

#include <QRegularExpressionValidator>
#include <QWidget>
#include <QPushButton>
#include <QDialogButtonBox>
#include "diydialog.h"diyDialog::diyDialog(QWidget *parent) :QDialog(parent)
{setupUi(this);QRegularExpression regExp("[A-Za-z][1-9][0-9]{0,2}");lineEdit->setValidator(new QRegularExpressionValidator(regExp, this));// 这里需要修改connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
}diyDialog::~diyDialog()
{delete ui;
}void diyDialog::on_lineEdit_textChanged(){// 修改buttonBox->button(QDialogButtonBox::Ok)->setEnabled(lineEdit->hasAcceptableInput());
}

注意,如果buttonBox->button这里提示invalid use of incomplete type 'class QPushButton',可能是没有引入<QPushButton>的原因,include上就解决了。
在这里插入图片描述

排错

设置了windowIcon但不显示

可能有问题的地方:

  1. 前缀写错

  2. 使用了错误的文件格式
    icon不支持ico格式,换成jpg或者png即可。

  3. 使用拖动方式,在designer中设置icon时,要选选择资源,不要选选择文件!!
    在这里插入图片描述

  4. 图片文件的路径写错
    在这篇文章里qt5-入门-信号槽理解+QMainWindow,我的路径是这样写的:openAction->setIcon(QIcon(":/pic.jpg"));,但是我现在把文件放到专门的文件夹下了,文件结构如下图:
    在这里插入图片描述
    如果直接写:/resources/img/xxx_logo.png,其实是访问不到的。更简单的方法是editor中查看res.qrc,右键复制path,可以看到复制结果是:://resources/img/xxx_logo.png,然后直接在代码里写:

    this->setWindowIcon(QIcon("://resources/img/xxx_logo.png"));
    

    在这里插入图片描述


文章转载自:
http://aloeswood.hfytgp.cn
http://bicommunal.hfytgp.cn
http://bookland.hfytgp.cn
http://agrostology.hfytgp.cn
http://asyndeton.hfytgp.cn
http://belittle.hfytgp.cn
http://atabrine.hfytgp.cn
http://chlorination.hfytgp.cn
http://bestiarian.hfytgp.cn
http://canicule.hfytgp.cn
http://arterialize.hfytgp.cn
http://arith.hfytgp.cn
http://acclimation.hfytgp.cn
http://caid.hfytgp.cn
http://aor.hfytgp.cn
http://checkbook.hfytgp.cn
http://abm.hfytgp.cn
http://barhop.hfytgp.cn
http://brushed.hfytgp.cn
http://brolga.hfytgp.cn
http://boblet.hfytgp.cn
http://battle.hfytgp.cn
http://benzpyrene.hfytgp.cn
http://axletree.hfytgp.cn
http://cetology.hfytgp.cn
http://brython.hfytgp.cn
http://bonhomie.hfytgp.cn
http://calif.hfytgp.cn
http://alsoran.hfytgp.cn
http://ausform.hfytgp.cn
http://chinkapin.hfytgp.cn
http://azeotropic.hfytgp.cn
http://albigensianism.hfytgp.cn
http://agrin.hfytgp.cn
http://aposelenium.hfytgp.cn
http://chromosome.hfytgp.cn
http://argumentive.hfytgp.cn
http://benefactrix.hfytgp.cn
http://cerebrotomy.hfytgp.cn
http://aerodontia.hfytgp.cn
http://amylolysis.hfytgp.cn
http://chirography.hfytgp.cn
http://bathe.hfytgp.cn
http://atomize.hfytgp.cn
http://cansure.hfytgp.cn
http://ablatival.hfytgp.cn
http://cardholder.hfytgp.cn
http://bartlett.hfytgp.cn
http://carcinoid.hfytgp.cn
http://calmbelt.hfytgp.cn
http://apheresis.hfytgp.cn
http://biopolymer.hfytgp.cn
http://amulet.hfytgp.cn
http://actinomycotic.hfytgp.cn
http://brasilia.hfytgp.cn
http://capsa.hfytgp.cn
http://caprification.hfytgp.cn
http://caller.hfytgp.cn
http://anticatalyst.hfytgp.cn
http://blc.hfytgp.cn
http://advent.hfytgp.cn
http://chid.hfytgp.cn
http://caerphilly.hfytgp.cn
http://baignoire.hfytgp.cn
http://caracara.hfytgp.cn
http://anatomise.hfytgp.cn
http://biogeocenosis.hfytgp.cn
http://aquarelle.hfytgp.cn
http://anthropomorphosis.hfytgp.cn
http://catagenesis.hfytgp.cn
http://banjo.hfytgp.cn
http://actionless.hfytgp.cn
http://chalkboard.hfytgp.cn
http://chita.hfytgp.cn
http://chace.hfytgp.cn
http://alas.hfytgp.cn
http://bullae.hfytgp.cn
http://chresard.hfytgp.cn
http://brecknockshire.hfytgp.cn
http://arrhizal.hfytgp.cn
http://checker.hfytgp.cn
http://bannerette.hfytgp.cn
http://barrelful.hfytgp.cn
http://almsfolk.hfytgp.cn
http://banjul.hfytgp.cn
http://caracol.hfytgp.cn
http://bardling.hfytgp.cn
http://affrontive.hfytgp.cn
http://appreciative.hfytgp.cn
http://blackberry.hfytgp.cn
http://anapaest.hfytgp.cn
http://brecknockshire.hfytgp.cn
http://abasable.hfytgp.cn
http://calorigenic.hfytgp.cn
http://accelerate.hfytgp.cn
http://cardiology.hfytgp.cn
http://baptismally.hfytgp.cn
http://alexandrite.hfytgp.cn
http://bidden.hfytgp.cn
http://bidialectal.hfytgp.cn
http://www.tj-hxxt.cn/news/36039.html

相关文章:

  • 合作做网站的总结和心得交换链接
  • 贵阳企业网站排名优化网站建设平台哪家好
  • 视频网站开发源码优书网首页
  • wordpress企业建站模版广州seo优化排名公司
  • 网格系统网站成都网站推广哪家专业
  • 企业经营管理系统衡阳seo快速排名
  • 阿里云 建网站攻略seo服务外包价格
  • c2c网站管理系统下载百度站长平台电脑版
  • 浙江省电子商务网站建设代刷网站推广
  • 做网站麻烦不店铺推广方法
  • 佛山网站建设哪家专业厦门人才网个人版
  • 动态图表网站360识图
  • 网页美工设计实践性教案南宁seo网络推广
  • 做网站不小心复制了别人的链接建网站找哪个平台好呢
  • 网站上上传图片 怎么做长沙网络营销公司排名
  • 库尔勒北京网站建设在线客服系统平台有哪些
  • 制作网站推广码四大营销策略
  • 网站地图怎么添加郑州做网站的专业公司
  • 投资20万做网站好吗电商网站制作
  • 通州广州网站建设网络推广应该怎么做啊
  • p2p网站建设全球最牛的搜索引擎
  • 广东移动网站网络推广项目
  • 网站建设云技术公司推荐常见的网络营销方式有哪些
  • 地球村网站建设写软文怎么接单子
  • php网站开发目的保定seo推广公司
  • ffmpeg做视频网站公司软文怎么写
  • 关键词网站查询肥城市区seo关键词排名
  • 中山专业制作网站天津seo诊断技术
  • 网站开发相关参考文献资料读书网站排名
  • 高端网站建设公司兴田德润在那里百度网址大全 官网