QT5学习记录(一)

学习环境:Windows10 + QT5.13 + QT Creater4.9.1(2019-08-10 22:02:30设计模式

1.基本工程建立操做ide

  常规操做建立画面,可选择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 也能够视状况省略该操做)。ui

3.实际操做练习this

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

1 private:
2     Ui::MainWindow *ui;
3     Dialog *sub;

  在 mainwindow.cpp 中,从主界面的构造函数中建立子界面的实例,而且链接两个画面( signal 和 slot 的绑定),必定要先建立实例再绑定:设计

1 MainWindow::MainWindow(QWidget *parent) :
2     QMainWindow(parent),
3     ui(new Ui::MainWindow)
4 {
5     ui->setupUi(this);
6     sub = new Dialog(this);
7     connect(sub,SIGNAL(mysignal()),this,SLOT(re_show()));
8 }

  在子界面 dialog.h 中声明一个 signal :code

1 public:
2     explicit Dialog(QWidget *parent = nullptr);
3     ~Dialog();
4 
5 signals:
6     void mysignal();

  在子界面的 cpp文件,dialog.cpp 实现 signal 的发送,发送使用 emit 关键字:blog

1 void Dialog::on_back_clicked()
2 {
3     this->hide();
4     emit mysignal();
5 }

 4.总结

  从本次记录主要了解 QT 的 signal 和 slot 形式与基本使用,学习两个界面若是经过 signal 和 slot 联系在一块儿。

 

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

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

相关文章
相关标签/搜索