生成文件会生成
1.项目pro文件

2.main.cpp :程序入口main函数

3.主窗口程序类:
1)mainwindow.h
2)mainwindow.cpp
3)mainwindow.ui:是一个XML文件,和窗口设计器一一对应
4)ui_mainwindow.h:是一个隐藏的头文件,在编译时,会根据mainwindow.ui内容
生成ui_mainwindow.h,也就是类Ui_MainWindow
类Ui_MainWindow:
A) 定义窗口设计器中所有控件对象指针
B)定义setupUi函数,new窗口所有控件,及对窗口界面初始化,


















| 写法 | 打开方式 | 特点 |
|---|---|---|
Dialog dlg; dlg.exec(); |
模态对话框 | 弹窗打开,主窗口被锁住,必须关掉弹窗才能操作主窗口 |
new + show() |
非模态对话框 | 弹窗、主窗口都能随时点击切换 |
这里用new堆开辟,父窗口是this,窗口关闭时 Qt 会自动回收内存,不用手动delete;
如果不带父窗口,长期反复点击按钮会不断堆开辟,造成内存泄露。






| 控件类型 | 读取文本函数 | 适用场景 |
|---|---|---|
| QLineEdit | text() | 账号、密码、手机号等单行内容 |
| QTextEdit | toPlainText()/toHtml() | 富文本、多行文案 |
| QPlainTextEdit | toPlainText() | 纯文本多行内容 |

exec() 有 int 返回值,Qt 固定两个常量:
QDialog::Accepted= 1:用户调用accept()(一般绑定「确定」按钮)QDialog::Rejected= 0:用户调用rejected()(取消按钮 / 点窗口右上角 × 关闭)



补充知识点:done()函数
done(int res)是 QDialog 自带函数,等价于:
-
done(1)=accept(),返回Accepted -
done(0)
=
reject()
,返回
Rejected
你用
done
写法完全合法,和
accept/reject
效果一致。
自定义数字的正确使用场景
适合弹窗存在三种及以上操作分支时,用不同数字区分行为:
举例:弹窗有【保存】【放弃】【返回】三个按钮
//保存
done(1);
//放弃
done(2);
//返回
done(0);
题目一: