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

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 控件,主界面的按钮实现跳转至从界面和关闭,从界面按钮实现一个弹出框和返回至主界面。在 mainwindow.h 中声明一个 Dialog 类的实例:

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

  在 mainwindow.cpp 中,从主界面的构造函数中创建子界面的实例,并且连接两个画面( signal 和 slot 的绑定),一定要先创建实例再绑定:

 MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
sub = new Dialog(this);
connect(sub,SIGNAL(mysignal()),this,SLOT(re_show()));
}

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

 public:
explicit Dialog(QWidget *parent = nullptr);
~Dialog(); signals:
void mysignal();

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

 void Dialog::on_back_clicked()
{
this->hide();
emit mysignal();
}

4.总结

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

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

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

QT5学习记录(一)的更多相关文章

  1. Qt5学习记录:QString与int值互相转换

    1)QString转int 直接调用toInt()函数 例: QString str("100"); int tmp = str.toInt(); 或者: bool ok; QSt ...

  2. 我的QT5学习之路(目录)

    说明:本目录内容为自己学习的心得和记录,参考资料来源于网络,学习过程中多方汲取,如有错误,欢迎指正和批评. Qt开发相关文章目录 一.我的Qt学习之路系列 1.[笔记]我的Qt学习之路(一)——浅谈Q ...

  3. Quartz 学习记录1

    原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...

  4. Java 静态内部类与非静态内部类 学习记录.

    目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...

  5. Apache Shiro 学习记录4

    今天看了教程的第三章...是关于授权的......和以前一样.....自己也研究了下....我觉得看那篇教程怎么说呢.....总体上是为数不多的精品教程了吧....但是有些地方确实是讲的太少了.... ...

  6. UWP学习记录12-应用到应用的通信

    UWP学习记录12-应用到应用的通信 1.应用间通信 “共享”合约是用户可以在应用之间快速交换数据的一种方式. 例如,用户可能希望使用社交网络应用与其好友共享网页,或者将链接保存在笔记应用中以供日后参 ...

  7. UWP学习记录11-设计和UI

    UWP学习记录11-设计和UI 1.输入和设备 通用 Windows 平台 (UWP) 中的用户交互组合了输入和输出源(例如鼠标.键盘.笔.触摸.触摸板.语音.Cortana.控制器.手势.注视等)以 ...

  8. UWP学习记录10-设计和UI之控件和模式7

    UWP学习记录10-设计和UI之控件和模式7 1.导航控件 Hub,中心控件,利用它你可以将应用内容整理到不同但又相关的区域或类别中. 中心的各个区域可按首选顺序遍历,并且可用作更具体体验的起始点. ...

  9. UWP学习记录9-设计和UI之控件和模式6

    UWP学习记录9-设计和UI之控件和模式6 1.图形和墨迹 InkCanvas是接收和显示墨迹笔划的控件,是新增的比较复杂的控件,这里先不深入. 而形状(Shape)则是可以显示的各种保留模式图形对象 ...

随机推荐

  1. CSP-2019酱油记

    炸了 Day0 上午机房弥漫着颓废的气息... nc哥在疯狂打板子,我疯狂找水题找信心(然而被历次联赛T1爆切 退役气息稍重,好多人刷屏cnblogs.. 然后年级扛把子们来做指♂导啦- 准备了火龙果 ...

  2. jdk和Tomcat版本之间的关系,jdk尽量要比tomcat低才行

    注:本文来源于:6860 <jdk和Tomcat版本之间的关系,jdk尽量要比tomcat低才行> 用的tomcat是低版本的,但是用的jdk却是高版本的,用Servlet做的项目运行都没 ...

  3. ffmpeg结合SDL编写播放器

    创建播放窗口 SDL_Surface *screen = NULL; screen = SDL_SetVideoMode(pCodecCtx->width, pCodecCtx->heig ...

  4. python range 和xrange

    对于这两个好像功能都差不多,这两个经常会被搞混,所以今天一定要把这个完全弄清楚. 首先我们看看range: range([start,] stop[, step]),根据start与stop指定的范围 ...

  5. VS设置自动压缩CSS

  6. AtCoder Beginner Contest 137 F

    AtCoder Beginner Contest 137 F 数论鬼题(虽然不算特别数论) 希望你在浏览这篇题解前已经知道了费马小定理 利用用费马小定理构造函数\(g(x)=(x-i)^{P-1}\) ...

  7. SpringAOP ApectJ 动态代理

    参考链接:https://docs.spring.io/spring/docs/4.3.13.RELEASE/spring-framework-reference/htmlsingle/#aop ht ...

  8. 刷题记录:[HarekazeCTF2019]encode_and_encode

    目录 刷题记录:[HarekazeCTF2019]encode_and_encode 一.知识点 JSON转义字符绕过 php伪协议 刷题记录:[HarekazeCTF2019]encode_and_ ...

  9. Vue日常开发问题

    1.sh: webpack-dev-server: command not found 我的公众号:

  10. asp.net 的log4net的helper类

    using log4net; using System; using System.Diagnostics; namespace MxWeiXinPF.Common.log { public stat ...