【Qt】实例-不同方式的输出

实例-不同方式的输出

  • [1. 使用输入框输入文本](#1. 使用输入框输入文本)
  • [2. 使用按钮出发文本](#2. 使用按钮出发文本)
  • [3. Qt的命名规则](#3. Qt的命名规则)

1. 使用输入框输入文本

我们打开Qt左侧栏中的设计,或者直接双击.ui文件就可以来到界面设计界面,其中左侧栏汇总Qt内置设置了多中的空间,其中有一栏就是专门只用来输入文本用到。

只需要鼠标按住其中的控件然后进行拖拽到现实界面即可。

当我们拖拽控件到界面上的时候,选中控件,在右侧栏属性面板上就会有对应的属性,从图中可以看出这个控件是属于QObject的,并且会给这个控件一个objectName

当我们拖拽控件到界面上的时候,选中控件,在右侧栏属性面板上就会有对应的属性,从图中可以看出这个控件是属于QObject的,并且会给这个控件一个objectName,而这个objectName是唯一的,并且我们可以手动去命名,如果不手动命名系统会自动对其进行命名。

而这个objectName的作用就是我们可以在代码中使用ui来进行操作,之前我们就讲过.ui文件中的xml文件格式后期会经过qmake的操作变成C++的代码,而我们对ui界面的操作其实就是在给这个.ui的xml文件进行添加,这个objectName其实就是给控件的一个标识,类似与我们写C++代码中定义一个变量名,并且在widget.h中也定义了ui指针

c 复制代码
private:
    Ui::Widget *ui;

当然除了使用拖拽的方式也可使用代码的方式进行设置。

c 复制代码
#include "widget.h"
#include "ui_widget.h"
#include <QLineEdit>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    QLineEdit* lineEdit = new QLineEdit(this);
    lineEdit->setText("hello qt");
}
Widget::~Widget()
{
    delete ui;
}

2. 使用按钮出发文本

这里首先我们选中左侧栏中的Buttons专栏中的button控件,将其拖拽到界面中,并且进行编辑文本。

但是我们点击按钮并没有什么反应,这是因为我们还没有给按钮绑定事件。所以我们现在来做一个预期效果,当我们点击按钮的时候我们希望原理按钮的文本内容发生改变,当我们在点击一下按钮的时候按钮上的文本内容又回到原先的内容。

c 复制代码
#include "widget.h"
#include "ui_widget.h"
#include <QLineEdit>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    connect(ui->pushButton, &QPushButton::clicked, this, &Widget::handleClick);
}
Widget::~Widget()
{
    delete ui;
}
void Widget::handleClick()
{
    if (ui->pushButton->text() == QString("hello qt"))
        ui->pushButton->setText("hello world");
    else
        ui->pushButton->setText("hello qt");
}

那么qmake是怎么生成呢,我们打开.pro文件看一看qmake生成了什么代码。

从这个目录回到上一层目录

把这个文件拖到Qt项目中就能看到源码了

c 复制代码
/********************************************************************************
** Form generated from reading UI file 'widget.ui'
**
** Created by: Qt User Interface Compiler version 5.14.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/

#ifndef UI_WIDGET_H
#define UI_WIDGET_H

#include <QtCore/QVariant>
#include <QtWidgets/QApplication>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QWidget>

QT_BEGIN_NAMESPACE

class Ui_Widget
{
public:
    QPushButton *pushButton; // 这个就是qmake自动生成的pushButton成员变量

    void setupUi(QWidget *Widget)
    {
        if (Widget->objectName().isEmpty())
            Widget->setObjectName(QString::fromUtf8("Widget"));
        Widget->resize(800, 600);
        pushButton = new QPushButton(Widget);
        pushButton->setObjectName(QString::fromUtf8("pushButton"));
        pushButton->setGeometry(QRect(320, 240, 171, 71));

        retranslateUi(Widget);

        QMetaObject::connectSlotsByName(Widget);
    } // setupUi

    void retranslateUi(QWidget *Widget)
    {
        Widget->setWindowTitle(QCoreApplication::translate("Widget", "Widget", nullptr));
        pushButton->setText(QCoreApplication::translate("Widget", "hello world", nullptr));
    } // retranslateUi

};

namespace Ui {
    class Widget: public Ui_Widget {}; // 同时这里Widget是继承自Ui_Widget,而Widget又是Ui的
} // namespace Ui

QT_END_NAMESPACE

#endif // UI_WIDGET_H

3. Qt的命名规则

3.1Qt中的命名规范

驼峰命名法

• 类名:首字母大写,单词和单词之间首字母大写;

• 函数名及变量名:首字母小写,单词和单词之间首字母大写

3.2 Qt Creator中的快捷键

• 注释:ctrl+/

• 运行:ctrl+R

• 编译:ctrl+B

• 字体缩放:ctrl+鼠标滑轮

• 查找:ctrl+F

• 整行移动:ctrl+shift+⬆/⬇

• 帮助文档:F1

• 自动对其:ctrl+i;

• 同名之间的.h和.cpp的切换:F4

• ⽣成函数声明的对应定义:alt+enter