QLayout类是布局管理器的基类,是一个抽象类.
1.QBoxLayout基本布局管理器
QBoxLayout类可以使子部件在水平或垂直方向上排成一列,将所有的空间分成一行盒子,然后将每个部件放入一个盒子中
QHBoxLayout水平成一列,QVBoxLayout垂直成一列
2.QGridLayout栅格布局管理器
QGridLayout类使得部件在网格中布局,在单元格中放入部件
3.QFormLayout表单布局管理器
QFormLayout类用来管理表格的输入部件及其相关的标签,将他的子部件分为两列,左边是标签右边是输入部件
QFormLayout一般用来设计表单
4.QStsckedLayout栈布局管理器
设置部件的大小
sizeHint保存了建议大小,minimumSizeHint最小大小,layoutStretch设置伸缩因子,layoutSizeConstraint大小约束
可拓展窗口
用来隐藏或者显示多余的内容,这就是所谓的可拓展窗口
QSplitter分裂器
QSplitter分裂器和QBoxLayout相似,QSplitter垂直方向可以改变
设置伙伴
伙伴主要用作QLabel类中,简单来说就是焦点的快捷键,在代码中使用setBuddy()函数
设置Tab键顺序
使用函数setTabOrder或者Qt设计师
QMainWindow包含,菜单栏(QMenuBar),工具栏(QToolBar),中心部件(CentralWidget),Dock部件(QDockWidget),状态栏(QStatusBar)
菜单栏下拉由QAction动作类实现,
使用资源系统来给菜单添加图标
在菜单中的各种菜单项目都有一个QAction类对象
工具栏中可以添加其他窗口部件
中心部件只能有一个,可以添加多文档部件(QMdiArea)
QDockWidget常称为停靠窗口
QStatusBar类提供了一个水平条,用来显示状态信息
QWidgetAction类提供了自定义菜单
文档的光标要基于QTextCursor类,文档的框架基于QTextDocument类
框架
QTextFrameFormat框架格式
文本块
QTextFrameFormat框架格式,QTextCharFormat字符格式
表格,列表,图片
QTextTableFormat表格格式,QTextListFormat列表格式,QTextImageFormat图片格式
语法高亮
QSyntaxHighlighter类实现语法高亮
可以在QLabel和QTextEdit添加文本时使用HTML标签或者CSS属性
QCompleter类实现自动补全
使用拖放打开文件
使用QMimeData类来表示拖动的数据,QDrag类来完成数据的转移
一定要设置使窗口接受放下事件setAcceptDrops(true)
void mousePressEvent(QMouseEvent * event);//鼠标按下事件
void dragEnterEvent(QDragEnterEvent * event);//拖动进入事件
void dragMoveEvent(QDragMoveEvent * event);//拖放事件
void dropEvent(QDropEvent * event);//放下事件
使用QPrinter类和一个打印对话框QPrintDialog类就可以完成打印文档操作
private slots:
void doprint();//打印
void doprintpreview();//打印预览
void printpreview(QPrinter *printer);
void createpdf();//生成pdf
在QT中使用一个对象来表示一个事件,继承自QEvent类
鼠标事件和滚轮事件
QMouseEvent表示一个鼠标事件,QWheelEvent类用来表示鼠标滚轮事件
void mousePressEvent(QMouseEvent *event);//鼠标按下
void mouseReleaseEvent(QMouseEvent *event);//鼠标释放
void mouseDoubleClickEvent(QMouseEvent *event);//双击
void mouseMoveEvent(QMouseEvent *event);//鼠标移动
void wheelEvent(QWheelEvent *event);//滚轮滚动
键盘事件
QKeyEnent类用来描述一个键盘事件
定时器事件和随机数
QTimerEvent类用来描述一个定时器事件
int QObject::startTimer(int interval)//开启定时器函数
qrand()和qsrand()函数实现随机数
事件过滤器和事件的发送
两个函数:installEventFilter()和eventFilter()