实例-不同方式的输出
- [1. 使用输入框输入文本](#1. 使用输入框输入文本)
- [2. 使用按钮出发文本](#2. 使用按钮出发文本)
- [3. Qt的命名规则](#3. Qt的命名规则)
-
- 3.1Qt中的命名规范
- [3.2 Qt Creator中的快捷键](#3.2 Qt Creator中的快捷键)
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