0
点赞
收藏
分享

微信扫一扫

Qt图形界面开发基础


1 Qt的坐标系

Qt图形界面开发基础_qt图形开发基础

2 QWidget、QDialog、QMainWindow的异同点

Qt图形界面开发基础_非模态对话框_02


Qt图形界面开发基础_非模态对话框_03


Qt图形界面开发基础_模态_04


Qt图形界面开发基础_非模态对话框_05


Qt图形界面开发基础_应用程序_06


Qt图形界面开发基础_李阡殇_07


消息对话框 文件对话框

Qt图形界面开发基础_模态_08


插讲一个快捷键:Ctrl+滚轮 字体变大

3 窗口的几何尺寸

搜索:Window and Dialog Widgets

Qt图形界面开发基础_应用程序_09


Including the window frame: x(), y(), frameGeometry(), pos(), and move(). 含边框 Excluding the window frame: geometry(), width(), height(), rect(), and size(). 不含边 框

qDebug()<<"openGLWidget‐>x();"<<ui‐>openGLWidget‐>x();
qDebug()<<"openGLWidget‐>y();"<<ui‐>openGLWidget‐>y();
qDebug()<<"openGLWidget‐>pos();"<<ui‐>openGLWidget‐>pos();
qDebug()<<"openGLWidget‐>frameGeometry();"<<ui‐>openGLWidget‐>frameGe
qDebug()<<"openGLWidget‐>geometry();"<<ui‐>openGLWidget‐>geometry();
qDebug()<<"openGLWidget‐>width();"<<ui‐>openGLWidget‐>width();
qDebug()<<"openGLWidget‐>height();"<<ui‐>openGLWidget‐>height();
qDebug()<<"openGLWidget‐>size();"<<ui‐>openGLWidget‐>size();
qDebug()<<"openGLWidget‐>rect();"<<ui‐>openGLWidget‐>rect();

用尺量:

Qt图形界面开发基础_李阡殇_10


Qt图形界面开发基础_非模态对话框_11


注意:所有UI(界面)操作必须放到ui­>setupUi(this);后面,不然会挂掉 代码:QtSize

4 QMainWindow主窗口

Assistant查看QMainWindow

Qt图形界面开发基础_应用程序_12


菜单栏
工具栏
中心组件
停靠组件
状态栏
以Qt 助手为例,讲解概念

Qt图形界面开发基础_李阡殇_13

5 模态、非模态、半模态对话框的区别

WPS:另存为对话框:

Qt图形界面开发基础_qt图形开发基础_14


模态对话框(Modal Dialogue Box,又叫做模式对话框),是指在用户想要对对话框
以外的应用程序进行操作时,必须首先对该对话框进行响应。如单击【确定】或【取 消】按钮等将该对话框关闭。一般来说,Windows应用程序中,对话框分为模态对话 框和非模态对话框两种。二者的区别在于当对话框打开时,是否允许用户进行其他对 象的操作。
显示模态对话框最常见的方法是调用其exec()函数,当用户关闭对话框,exec()将提供 一个有用的返回值,并且这时流程控制继续从调用exec()的地方进行。通常情况下, 要获得对话框关闭并返回相应的值,我们连接默认按钮,例如:”确定”按钮连接到 accept()槽,”取消”按钮连接到reject()槽。另外我们也可以连接done()槽,传递给它 Accepted或Rejected。

QDialog *dlg=new QDialog(&w); dlg‐>setWindowTitle(QStringLiteral("模态对话框")); dlg‐>exec(); w.setWindowTitle(QStringLiteral("主界面模态对话框"));
qDebug() << QStringLiteral("关闭模态对话框以后,可以继续向下执行");

和同一个程序中其它窗口操作无关的对话框。在文字处理中的查找和替换对话框通常
是非模式的,允许用户同时与应用程序的主窗口和对话框进行交互。调用show()来显 示非模式对话框,并立即将控制返回给调用者。 如果隐藏对话框后调用show()函数,对话框将显示在其原始位置,这是因为窗口管理 器决定的窗户位置没有明确由程序员指定,为了保持被用户移动的对话框位置,在 closeEvent()中进行处理,然后在显示之前,将对话框移动到该位置。
WPS中的查找就是非模态对话框

Qt图形界面开发基础_qt图形开发基础_15

w.setWindowTitle(QStringLiteral("我是主界面"));
//w.setWindowTitle(QString::fromLocal8Bit("中文")); w.show();

QDialog *dlg=new QDialog(&w); dlg‐>setWindowTitle(QStringLiteral("非模态对话框")); dlg‐>show(); w.setWindowTitle(QStringLiteral("主界面非模态对话框")); qDebug() << QStringLiteral("非模态对话框可立即执行");


举报

相关推荐

0 条评论