QT5学习记录(一)

学习环境:Windows10 + QT5.13 + QT Creater4.9.1

1.基本工程创建操作

  常规操作创建画面,可选择QDialog、MainWindow、QWidget三种类型。可选择直接创建相应的 ui 文件,控件的添加可以在编辑模式下使用代码创建,也可以在设计模式下通过拖动添加;控件的属性可以在编辑模式下用代码修改,也可以在设计模式下通过属性栏修改;每一个控件通过其唯一的 objectName 寻找,所以要细心设置控件的objectName。

2.常用且重要的操作

  QT 特有的信号(signal)和槽(slot):signal 关联发出者,slot 关联接收者,两者各有一个对应的函数操作;QT中已经自带了一些 signal 和 slot 函数,用户可以直接使用;如果用户自定义的signal信号,使用 emit 关键字发出信号;signal 和 slot 需要绑定起来才能实现正常的发送与接收,这种连接可以使用代码 connect 函数执行,也可以在设计模式下的 Edit signal/slot 功能中通过连线方式绑定,最终实现 signal 和 slot 的代码(如果是 QT 自带的 signal 和 slot 也可以视情况省略该操作)。

3.实际操作练习

  新建两个窗口(此处选择了 MainWindow 和 Dialog),新建时选择创建 ui 文件。在每个画面添加两个 QPushButton 控件,主界面的按钮实现跳转至从界面和关闭,从界面按钮实现一个弹出框和返回至主界面。在从界面(Dialog)的 H 文件中声明一个 MainWindow 实例:

private:
    Ui::Dialog *ui;
    MainWindow *back_main;

  从界面的构造函数中连接两个画面( signal 和 slot 的绑定):

Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
    back_main = new MainWindow;
    connect(ui->back,&QPushButton::clicked,back_main,&MainWindow::re_show);
}

  在 MainWindow 类中声明一个 slot :

public slots:
    void re_show();

  在 MainWindow 的 cpp 文件实现 slot 函数 re_show()  和 创建从界面函数(即新建画面按钮的 slot 函数) :

void MainWindow::re_show()
{
    this->show();
}

void MainWindow::on_create_clicked()
{
    Dialog mydia;
    this->hide();
    mydia.exec();
}

 4.总结

  从本次记录主要了解 QT 的 signal 和 slot 形式与基本使用,学习两个界面如果通过 signal 和 slot 联系在一起。

 

  每使用一种控件,需要把对应的类包含进去!!! eg. #include <QPushButton>//包含按钮的类

/***************************************未完待续******************************************/

上一篇:【使用Ubuntu SDK】入门篇——qtcreator 运行qmlscene时 module "Ubuntu.Components" is not installed 错误分析和


下一篇:c – Qt 5是否支持例外?