QT开发(4)--各种方式实现HelloWorld
目录
1. 编辑框实现
2. 按钮实现
前面已经写过通过标签实现的了,所以这里就不写了,通过这两个例子,其他的也是同理
1. 编辑框实现
编辑框分为单行编辑框(QLineEdit)双行编辑框(QTextEdit),HelloWorld不是很长的文本,所以我们这里使用单行编辑框。
像之前一样拖拽过来即可:
在右下角的QLineEdit中可以进行属性编辑
代码实现:
#include "widget.h"
#include "ui_widget.h"
#include <QLineEdit>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
QLineEdit* edit = new QLineEdit(this);
edit->setText("hello world");
}
Widget::~Widget()
{
delete ui;
}
和前边标签实现是差不多的,所以QT的一些代码实现都是有迹可循的,只需要了解几个控件的使用,大部分都是差不多的。
2. 按钮实现
按钮的好处就是可以点击,点击之后应该就会有效果,那么这里就涉及到了信号槽,信号槽的本质就是给按钮的点击操作关联上一个处理函数,当用户点击的时候,就会执行这个处理函数。 后面会有专门讲这个的博客。
使用示例:
#include "widget.h"
#include "ui_widget.h"
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 World"))
{
ui->pushButton->setText("hello QT");
}
else
{
ui->pushButton->setText("Hello World");
}
}
在ui_widget.h文件中自动生成的代码就会包含一个pushButton的成员变量,这个变量的名字,就是根据objectName的值来确定的。
pushButton是ObjectName,如果属性栏那里改掉了,那么代码也要对应改变,不然ui找不到的
就是下面这张图的原理:
代码实现:
信号槽示例:
对于纯代码版本,按钮对象需要自己new出来,为了保证其他函数中能够访问到这个变量,就需要把按钮对象设定为Widget类的成员变量,
而图形设置的按钮不需要自己new,对象的操作已经是被QT自动生成了,而且这个按钮对象,已经作为ui对象里的一个成员变量了,也无需作为Widget的成员。