手把手教QT—5.qt设计器、常用控件及帮助文档使用(二)入门必看!

本节来讲如何用代码调用ui中定义的控件,以及帮助文档的使用。

窗口设计

可用上节工程,或者新建工程,这里就不赘述了。在ui设计中,将QTabWidget控件拖拽到到设计区中,在QTabWidget的第一页放入按钮、行编辑器、标签,QTabWidget的第二页放入数码管。更改对象名称,设置属性(这里可以自由发挥啦~)。
在这里插入图片描述
在这里插入图片描述

代码讲解

我们这节要实现的是:在行编辑器中输入数字,点击确定按钮,数码管显示数字。那么我们现在就要给按钮写一个槽函数,连接它的信号。在ui中就不需要像之前学习的那样,需要自己写connect函数,在ui中可以直接鼠标放在按钮上右击->转到槽;
在这里插入图片描述

选择所需要的信号,这里我选择pressed();

此时页面跳转回代码编辑区。在mywidget.h文件中槽函数的定义和.cpp源文件的槽函数都已经自动生成好。

我的按钮控件名为confirm_btn,信号我选的是pressed。所以自动生成的槽函数名为:on_confirm_btn_pressed()。

用ui设计不必再写connect()函数,当我们按下按钮,会自动跳转到槽函数中。现在我们只需要在.cpp源文件的槽函数中添加代码就可以了。在代码中用“ui->对象名”就可以调用我们的控件了。在我们敲代码过程中,Qt会有自动提示。

槽函数代码如下:

void myWidget::on_confirm_btn_pressed()
{
    QString str=ui->input_edit->text();   //获取行编辑的内容
    ui->tabWidget->setCurrentIndex(1);    //显示tabWidget第二页。  1: tabWidget的索引
    ui->num_display->setDigitCount(10);    //数码管显示10位
    ui->num_display->setSegmentStyle(QLCDNumber::Flat);    //数码管显示外观
    ui->num_display->display(str);        //数码管显示数据
}

此时可以编译运行啦,在第一页输入数字,按下确定键,页面自动切换到第二页显示。

我们调用功能函数对控件进行操作,那我们如何快速找到这些功能函数。

  • 第一个方法:双击ui文件回到设计页面区,查看属性,这些属性就是我们的功能函数名。
  • 第二个方法:在帮助文档中的功能函数里找。

帮助文档的使用

在写Qt代码时,我们时常需要借助帮助文档来查找需要的信息。那么打开帮助文档方法有:

  • 第一个方法:比如打开QLabel的文档,鼠标放在QLabel上,键盘按下F1进入帮助文档。
  • 第二个方法:点击左侧帮助文档,搜索QLabel

    当我们知道使用哪个功能函数的情况下,如何快速找到这些功能函数的详细描述以及获取参数类型。我们仍然可以用鼠标放在函数上,键盘F1键快速进入帮助文档的方法,但前提是此时的函数必须要有参数。
    这里以数码管display()函数举例。如果鼠标放在display()上按下F1,此时帮助文档界面显示No documentation available。如果鼠标放在display(1)上并按下F1键,就可以看到该函数的详细描述了。

代码

.cpp源文件代码:

#include "mywidget.h"
#include "ui_mywidget.h"


myWidget::myWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::myWidget)
{
    ui->setupUi(this);
    ui->tabWidget->setCurrentIndex(0);
}

myWidget::~myWidget()
{
    delete ui;
}

void myWidget::on_confirm_btn_pressed()
{
    QString str=ui->input_edit->text();   //获取行编辑的内容
    ui->tabWidget->setCurrentIndex(1);    //显示tabWidget第二页。  1: tabWidget的索引
    ui->num_display->setDigitCount(10);    //数码管显示10位
    ui->num_display->setSegmentStyle(QLCDNumber::Flat);    //数码管显示外观
    ui->num_display->display(str);       //数码管显示数据
}





点亮在看,扫码关注我吧



版权声明:本文为qq_42419483原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。