QT学习day1
一.初识QT
Ui::Dialog ui; // 创建一个 UI 类的实例(由 Qt Designer 生成) ui.setupUi(&w); // 将 UI 布局加载到窗口对象 w 上 w.show(); // 显示窗口
效果初始化一个什么都没有的窗口
二.添加ico文件
打开.pro文件,在其中添加RC_ICONS = 文件名.ico,其中,RC_ICONS
是一个资源指令,用于将 .ico
图标文件嵌入到最终生成的可执行文件(.exe
或 .dll
)中。
如图
三.模块化和非模块窗口
模块化创建--->如果只能处理当前页面,不处理当前页面就无法点击其他页面。
非模块化窗口---->可以任意点击点击任意窗口,窗口之间没有阻塞。
代码:QDialog w;w->setModel();w.show();//显示模块化窗口,删除setModel()函数则去模块化
四.信号与槽函数
个人理解:通过各个信号,接受信号时调用相对应的槽函数实现页面之间的互通,联系。实际上和网络编程的回调函数很像,说到底还是懂C++就能看懂,不过要学精,如果单纯看过黑马程序员的教程,那估计是看不懂的,要深入学。
例子:创建一个子类页面,在其中创建一个按键,要求按这个键就返回主页面,在主页面也有一个按键,一按就返回子页面。
实现思路:连接按钮和槽函数,一但检测到接受到点击的信号,就调用对应的槽函数。
注意点:在子页面返回主页面的时候要存储主页面的信息节点,不要通过增加私有变量的方法来实现,因为这样会增加耦合性,要通过设置一个获取主页面信息节点的函数来实现。
下面为QT5的语法例子
connect(ui->showChildButton, &QPushButton::clicked, this, &MainWindow::showChildDialog);