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

初识QLabel,单行文本框,多行文本框,QDebug()输出,普通按钮,信号和槽(1)

目录

初始QLabel

单行文本框与多行文本框

QDebug输出函数

普通按钮


初始QLabel

QLabel是一个标签组件,在如下图像界面进行拖入展示

也可以如下创建方式进行创建。

#include <QLabel>
QLabel* lab = new QLabel(this);

初次认识只需要掌握setText(const QString)这一个给标签组件命名的方法(输入内容)。

lab->setText("huanshjdd");

注意:仅有const QString类型才可以被string / const string直接转化。

单行文本框与多行文本框

#include "widget.h"
#include "ui_widget.h"
#include <QLineEdit>  
#include <QTextEdit>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);
//    QLineEdit* edit = new QLineEdit(this); //单行文本输入框
//    edit->setText("hello word");QTextEdit* edit = new QTextEdit(this);//多行文本输入框,也就是多行富文本编辑框edit->setText("efhvefvvefsjb");ui->textEdit_2->setText("hdjfesjfhesf"); //QTextEdit *textEdit_2,对象名字是指向自己的指针,相当于使用指向自己的对象的指针调用自己的方法//输入框和label的唯一区别就是可以在界面直接修改里面输入的数值
}Widget::~Widget()
{delete ui;
}

QT中大多数组件的头文件和组件是一样的,尽量采用这种头文件包含方式,基本上所有的组件都包含setText方法来设置文本

QDebug输出函数

#include "mylabel.h"
#include "QLabel"
#include <iostream>
#include <QDebug> //使用<>进行包含也是可以的
#include <QString>
using namespace std;
mylabel::mylabel(QWidget* parent):QLabel(parent)
{//
}
mylabel::~mylabel()
{//使用cout会导致输出和显示在控制台的编码格式不匹配,字符串是默认utf-8的格式进行编码的cout << "已经销毁了" << endl;//外面要正确显示只能使用qDebug, qDebug()相当于cout进行使用,规则完全一致QString str = "已经销毁了";qDebug() << str << endl; //Qstring可以转化成const char*qDebug() << "已经销毁了" << endl;//qDebug() 的“刷新链条”更短,比cout快//qDebug()可以跨平台、可统一关闭、可重定向、线程安全,主要是可以统一关闭所有的输出。
}

为什么输入提示会有三个差不多的呢,第一个是qDebug() 是你唯一要调用的,第二个QDebug 是它返回的类型,第三个是展示可以输出的重载类型信息。

普通按钮

Widget.h#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QPushButton>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();void handler();private:Ui::Widget *ui;QPushButton* button;
};
#endif // WIDGET_H
#include "widget.h"
#include "ui_widget.h"
#include <QPushButton> //创建一个点击按钮需要的头文件//QPushButton 就是 Qt 里最普通、最常用的一种“点击按钮”控件。
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);button = new QPushButton(this);button->setText("feves"); //在按钮上显示的文字,相当于给按钮进行表面命名//connect(button, &QPushButton::clicked, this, &Widget::handler);//并不是在“立刻调用”成员函数,而是把成员函数的地址(指针)传给 Qt 元对象系统;当信号 clicked() 稍后发射时,//Qt 会在** this 指向的那个实例**上调用该函数。和cpp的仿函数不同ui->pushButton->setText("esfvsfee");connect(button, &QPushButton::clicked, this, [this](){if (this->button->text() == "feves"){this->button->setText("finish");}else{this->button->setText("feves");}});//bind, lambda表达式也可以}
void Widget::handler()
{if (button->text() == "feves"){button->setText("finish");}else{button->setText("feves");}
}Widget::~Widget()
{delete ui;
}

我们也可以使用图形化界面进行更快速的绑定槽函数。

#include "widget.h"
#include "ui_widget.h"
#include <QPushButton>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QPushButton* button = new QPushButton(this);button->setText("efsegrg");button->move(300, 400); //move函数用于挪动组件或者widget窗口相当于与左上角(0,0)像素的位置}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked() //函数名就体现了回调clicked事件的函数,connect都不要写了
{if (ui->pushButton->text() == "shhdhhd"){ui->pushButton->setWindowTitle("dsff"); //这是 QWidget 的函数,用来设置顶层窗口的标题栏文字。//QPushButton 继承自 QWidget,而 QWidget 提供了 setWindowTitle(),所以所有控件“理论上”都能调用它。this->setWindowTitle("efesfegf");//只有当这个控件是顶层窗口时才有效果,//否则它只是一个“空操作”,但不会报错,因为语法上合法。}
}

我们会发现关于按钮的信号有5个,我们之后会一一介绍。

使用connect时怎么区分哪个是信号哪个是槽函数呢,

对于系统自带的信号和槽可以通过图标形象的看出,带有锯齿的就是槽函数,带有一个波痕的就是信号。

http://www.dtcms.com/a/562933.html

相关文章:

  • wordpress如何变成中文版广西网络优化seo
  • .net网站吃内存商业网
  • 如何做的网站排第一天津重型网站建设方案公司
  • 中山网站开发费用图片加文字制作
  • 音乐网站源码带手机版网站建设和运行管理办法
  • 第二十三周 学习周报
  • 手机网站管理系统天津网站推广宣传
  • 一个空间可以做几个网站中山市饮食网站建设
  • 龙城网站建设网站开发的论文题目
  • 网站域名备案变更常德市住房和城乡建设局网站
  • 专业网站建设模板网站开发毕业设计评审表
  • 南京网站制作多少钱定制衣服的网站
  • dremwear做网站wordpress contactus
  • 网络营销推广方法哪家正规企业seo排名优化
  • 母婴微网站设计规划自己制作小程序怎么做
  • 深圳建站公司一般需要多久wordpress 文章批量移动
  • 南宁大型网站建设建网站添加付款方式
  • 网站页面改版降权wordpress更改图标
  • 最简单的网站代码用enfold做的网站
  • 如何建设好企业的网站维护响应式网站建设多少钱
  • qq空间怎么做网站秦皇岛十大必去景点
  • 国外网站加速器自己怎么设计公司标志
  • 常见网站架构平面设计师推荐网站
  • Linux 网络基础
  • 毕业设计成品网站网站开发后如何上线
  • 【东枫电子】AI-RAN 开发者套件,适用于6G科研与教学
  • 微信群推广网站做微网站那pc端显示啥
  • 做网站单线程CPU和多线程cpu大连百度推广
  • 湛江做寄生虫网站87网站一起做
  • 专业的集团网站制作企业肇庆城乡建设门户网站