网站后台挂马怎么处理wordpress 本地运行慢
- 作者: 五速梦信息网
- 时间: 2026年03月21日 07:55
当前位置: 首页 > news >正文
网站后台挂马怎么处理,wordpress 本地运行慢,可以做动画的网站都有哪些软件下载,购买网站目录 一#xff0c;创建helloworld 1.1 通过图形化 1.2 通过代码 1.3 通过编辑框 1.4 使用按钮 二#xff0c;对象树 2.1 关于对象树 2.2 演示释放流程 三#xff0c;乱码问题 3.1 为什么会有乱码问题 3.2 解决乱码问题 四#xff0c;认识Qt坐标系 五#xf…目录 一创建helloworld 1.1 通过图形化 1.2 通过代码 1.3 通过编辑框 1.4 使用按钮 二对象树 2.1 关于对象树 2.2 演示释放流程 三乱码问题 3.1 为什么会有乱码问题 3.2 解决乱码问题 四认识Qt坐标系 五周边 5.1 命名规范 5.2 快捷键 5.3 如何使用帮助文档 一创建helloworld 在窗口上打印helloworld我们有两种方式 一种是通过图形化的方式在界面上创建出一个控件显示helloworld另一种是通过纯代码的方式通过编写代码在界面上创建控件显示helloworld 1.1 通过图形化 先双击 .ui 文件来到图形化编辑页面 然后就会在页面的右上方显示我们安装的控件 最后我们点击左下角运行按钮我们创建的窗口上就会显示一个hello world字符串 1.2 通过代码 在我们项目的 widget.cpp 文件中有一个构造函数如果我们要通过代码去构造界面一般都会把构造界面的代码放在 Widget/MainWindow类的构造函数里面注意只是创建并不是使用我们要使用一个类一般都要加上对应的头文件并且一般每个类都有一个对应同名的头文件之后就可以接在构造函数中new一个QLabel在堆上创建或者直接在栈上创建Qt更推荐在堆上创建原因我们后面的对象树再详细讲讲另外我们在new对象时建议把this也放进去就是new QLabel(this); 这个表示给这个label对象指定一个父对象这点我们对象树再详细讲讲 在包含头文件时可能会出现两个头文件 像第二个qlabel.h 这种是上古时期的头文件命名风格比较Qt是1991年出来的 那时候的C编程还是比较荒蛮的状态直到1998年C 推出了 C98 标准规定包含头文件统一使用 #includecstdio 代替C语言的 #includestdio.h 之后我们就可以往label对象里面设置一个文本 关于QString类型 Qt诞生于1991年C还未形成标准C也就没有“标准库”这样的概念所以在那个年代如何表示一个字符串有很多方式比如C风格的字符串\0结尾或者是C的string但是在当时STL也还没有搞起来什么都不太好用于是Qt自己搞了一套轮子也就搞了一系列基础类来支持Qt的开发比如字符串QString动态数组 QVector还有链表QList字典 QMap等虽然后面有了 C标准和STL但是想要Qt直接舍弃原有的内容也不太现实所以只能和现有的标准库中的容器类共存了所以我们自己在开发过程中要使用容器类两者都可以是使用但是在Qt原生的 api 中涉及到的接口用的都是Qt自己那一套容器比如上面的设置文本很多方法的参数都是Qt的容器类而不是STL的但是QString用起来要比 std::string香很多因为QString内部已经对字符编码做了处理和java一样而不像std::string那样啥也没干所以不经常出现乱码问题 之后直接运行窗口也就会显示出hello world了 只是默认在左上角如果要想放到其它位置也可以做到后面会详细讲解 问题我们以new创建的对象但是最后没有delete会出现内存泄漏吗 解答 上述代码不会有内存泄漏label对象会在合适的时候自动释放主要的原因就是我们前面构造的时候把this给传进去了也就是把这个对象挂在了对象树上下面我们就来详细了解下对象树 1.3 通过编辑框 Qt中有两种编辑框①单行编辑框QLineEdit ②多行编辑框QTextEdit 我们要用到的控件是Input Qidgets下的Line Edit也是最简单的单行编辑框 当然也可以用代码来创建编辑框并且方式和上面是非常相似的 1.4 使用按钮 按钮控件位于Buttons目录下的Push Button 但是目前这个按钮能点击但是没有反馈也正常因为我们还没有设置我们要想让这个按钮点击后有反馈需要用到Qt中一个非常重要的机制叫做“信号槽机制”这个我们后期再详细介绍这里我们先简单演示下 别忘记在widget.h里声明函数哦 效果如下 问题connect的第一个参数是如何访问到具体某个控件的 解答这时候Qt Designer右下角那一坨东西就有用了 我们在Qt Designer中通过拖拽方式创建一个控件的时候会给这个控件分配一个objectName属性这个属性的值是在这个页面中唯一的比如上面我们搞了两个按钮对应的objectName就不一样qmake会根据objectName生成对应的C代码其中QPushButton对象的变量名字就是这里的objectName这个变量就是ui属性中的成员变量这个objectName也可以自己修改 上面是通过拖拽方式创建按钮下面我们通过代码来创建按钮 二对象树 2.1 关于对象树 前端开发网页开发也涉及到类似对象树DOM本质上也是一个树形结构N叉树用于组织页面上的各种结构 Qt中也是类似也是搞了一个对象N叉树把界面上的各种元素组织起来比如我们的页面大概长这样 那么对象树就大概长这样 用对象树把这些内容组织起来最主要的目的就是能够对这些对象统一管理比如统一释放这点和我们Linux里的“先描述再组织”的目的非常相似 问题上面这些对象统一销毁是最好的那么如果是一个对象先销毁了会发生什么 解答会导致对应的控件在页面上无法显示导致对应的控件在页面上不存在了 所以我们以new的方式创建对象就是为了把这个对象的生命周期和 Qt 对象树的生命周期进行同步所以对象会随着对象树的销毁统一全部销毁并且也方便管理 问题如果改为在栈上创建对象会发生什么 解答如下图 2.2 演示释放流程 上面说一大堆对象树方便释放但是实际效果并不明显下面我们自己搞一个QLabel类然后打印一些东西来演示释放效果 ①创建对应的C文件 然后就多出了两个文件 ②实现mylabel.h 由于我是习惯与函数声明和定义放一起写的所以mylabel.cpp没有用到大家也可以按照自己的方式写下面是MyLabel类也就是mylabel.h的实现 #ifndef MYLABEL_H #define MYLABEL_H#includeQLabel #includeiostream class MyLabel : public QLabel { public:MyLabel(QWidget* parent) //用带参数的构造函数这样才能确保自己的对象能够加到对象树上:QLabel(parent){}~MyLabel(){std::cout MyLabel 已销毁 std::endl;} };#endif // MYLABEL_H③在widget.cpp中创建并调用MyLabel类 ④查看效果 注意析构函数是对象销毁时才会调用所以当窗口生成出来要再关闭后才会调用析构函数如下动图 可以看到析构函数能够进行打印但是这里出现了乱码下面我们来解释并解决一下 三乱码问题 3.1 为什么会有乱码问题 乱码问题我们后面会经常涉及到但是乱码出现的原因大部分情况下只有一个就是“编码方式不匹配” 问题在计算机中一个汉字占几个字节 解答 绝大多数的人回答时都会即答“2个字节”但是实际上针对这个问题只要回答一个具体的数字100%是错的因为我们需要搞清楚一个前提条件就是我们当前的中文编码是哪种方式字符集计算机存的是二进制英文字母和很多符号我们是用ASCII码表搞得规定了每个字符都有由一个数字来表示就够了因为英文就那么多我们常用的汉字大概是4千左右算上各种生僻字的话大概有6w多个所有就搞了一个更大的表格用更大的数字来表示汉字了对于计算机来说6w多个符号的表格没有什么压力的但是这个表格是什么样子具体每个汉字用哪个数字表示就有很多种了 目前表示汉字字符集我们主要是两种方式 ①GBK使用2个字节的大数字表示一个汉字我们Windows简体中文版就是默认用的GBK②UTF-8 / utf8属于变长编码表示一个符号使用的字节数有变化在utf8中一个汉字一般是3个字节 我们可以在Windows本地和Linux中验证一下 下面是Linux中的执行结果 #includeiostream #includestring.hint main() {const char* s 好;std::cout strlen(s) std::endl; } 下面是在Windows上的测试结果 3.2 解决乱码问题 我们在析构函数中打印中文那么这个代码的编码方式就是和主体文件直接相关的 Qt Creator 内置的终端不一定是 utf8 的方式来显示字符串并且好像也不能设置字符编码但是既然出现了乱码那么肯定不是 UTF-8当前表示中文的主流方式还得是 UTF-8因为不仅支持中文很多其它国家文字都可以支持 但是不用担心我们之前也说过QString 是可以帮我们自动处理编码问题的而且不止QStringQt 也提供了专门用来打印日志的工具也能自动处理编码问题 并且 qDebug 还可以通过编译开关实现一键式关闭 四认识Qt坐标系 以左上角为原点00X往右增加Y向下增加 给Qt某个控件设置位置就要指定坐标坐标系原点就是相对于父窗口/控件的 move表示把控件移动到具体位置单位是像素点x和y函数就是获得该控件相对与原点(0, 0)的横坐标和纵坐标 #include widget.h #include ui_widget.h #includeQPushButton #includeQDebugWidget::Widget(QWidget parent): QWidget(parent), ui(new Ui::Widget) {ui-setupUi(this);QPushButton b1 new QPushButton(按钮1, this);QPushButton* b2 new QPushButton(按钮2, this);b1-move(300, 200); //设置按钮1的坐标this-move(0, 100); //这个就是设置窗口的坐标原点为我们屏幕的左上角qDebug() 按钮1的坐标为[ b1-x() , b1-y() ];qDebug() 按钮2的坐标为[ b2-x() , b2-y() ]; }Widget::~Widget() {delete ui; }五周边 5.1 命名规范 类名首字母大写单词和单词之间的首字母大写比如QApplication函数和变量名首字母小写单词和单词之间首字母大写比如studentCountQt偏好驼峰命名法这一点和之前的C代码有区别我们之前是喜欢这样的unordered_mappriority_queue这叫做蛇形命名法 5.2 快捷键 注释ctrl /运行ctrl R编译ctrl B字体缩放ctrl 鼠标滚轮查找ctrl F整行移动ctrl shift 上下箭头帮助文档F1自动对齐ctrl i同名之间.h 和 .cpp 切换F4生成函数声明的对应定义alt Enter 5.3 如何使用帮助文档 可以将鼠标光标放到要查询的类名/方法名上直接按F1Qt Creator 左边侧栏中直接点击“帮助”按钮可以直接跳转第三种方式就是在开始菜单找到帮助文档之前已经介绍过
- 上一篇: 网站后台功能需求文档班级网站建设规划书
- 下一篇: 网站后台管理规定手赚网 wordpress
相关文章
-
网站后台功能需求文档班级网站建设规划书
网站后台功能需求文档班级网站建设规划书
- 技术栈
- 2026年03月21日
-
网站后台工程师淘宝特价版
网站后台工程师淘宝特价版
- 技术栈
- 2026年03月21日
-
网站后台更新无法在网页显示制作介绍的网站模板免费下载
网站后台更新无法在网页显示制作介绍的网站模板免费下载
- 技术栈
- 2026年03月21日
-
网站后台管理规定手赚网 wordpress
网站后台管理规定手赚网 wordpress
- 技术栈
- 2026年03月21日
-
网站后台管理维护 不懂编程做网站用什么软件编辑
网站后台管理维护 不懂编程做网站用什么软件编辑
- 技术栈
- 2026年03月21日
-
网站后台管理系统php做外贸服装的网站
网站后台管理系统php做外贸服装的网站
- 技术栈
- 2026年03月21日
