QT_3
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
显示表达式及计算结果
输出:定义使文本框内容发 生改变的信号。 5 接收输入:定义各个按钮对 应的槽函数。 3
4
1
计算表达式的值 2
输入表达式和清除表达式
信号的定义本质上就是函数的 声明。信号的返回值?信号的 名字?信号的形参个数及类型?
槽本质上是类的成员函数。槽 的访问权限?槽的返回值?槽 的名字?槽的形参个数及类型? 槽的函数体怎么写?
计算器类成员函数的定义:
void Calculator::addSeven() { exp+='7'; tempNum+='7'; emit already(exp); }
void Calculator::addPlus() { exp+='+'; listexp.push_back(tempNum); listexp.push_back("+"); tempNum=""; emit already(exp); }
设计菜单栏,工具栏和状态栏
QMainWindow 类提供一个有菜单条、锚接 窗口(例如工具条)和一个状态条的主应用 程序窗口。主窗口通常用在提供一个大的中 央窗口部件(例如文本编辑或者绘制画布) 以及周围菜单、工具条和一个状态条。 QMainWindow常常被继承,因为这使得封 装中央部件、菜单和工具条以及窗口状态变 得更容易。继承使创建当用户点击菜单项或 者工具条按钮时被调用的槽成为可能。你也 可以使用Qt设计器来创建主窗口。
添加资源
使用 Qt Creator 可以很方便地创建资源文 件。我们可以在工程上点右键,选择“添 加新文件…”,可以在 Qt 分类下找到“Qt 资源文件”:
添加资源
点击“选择…”按钮,打开“新建 Qt 资源文 件”对话框。在这里我们输入资源文件的 名字和路径:
添加资源
点击下一步,选择所需要的版本控制系统 ,然后直接选择完成。我们可以在 Qt Creator 的左侧文件列表中看到“资源文件 ”一项,也就是我们新创建的资源文件:
上述代码写在什么地方? 建议写在界面相关的成员函数中,对于这个例子 写在:MainWindow类的构造函数中。
QT 内建控件概览
Qt按纽控件
Qt提供了四种“按纽”:QPushButton, QtoolButton, QcheckBox和 QRadioButton。QPushButton和 QToolButton一般执行某个动作,但也可用作触发按纽。 QCheckBox一般用来提供多选项,而QRadioButton常用 于提供单选项。
newAct = new QAction(QIcon( ":/images/new" ), tr("新建"), this ); newAct->setShortcut(tr("Ctrl+N" )); newAct->setStatusTip(tr("新建文件")); connect(newAct, SIGNAL(triggered()), this, SLOT(newFile()));
QT 内建控件概览
QToolBox用于实现抽屉效果
QT 内建控件概览
Qt 项目查看控件
QT 内建控件概览
Qt显示控件
Qt提供了若干控件专门用于显示信息。QLabel是其中最为重 要的一种,可用于显示纯文本,HTML,图像信息等。 QtextBrowser是一种只读QTextEdit子类,用于显示格式化文 本。与QLabel不同,此类型可显示大规模格式化文档,并可自 动添加滚动条,提供鼠标及键盘导航功能。
QT 内建控件概览
Qt单页容器控件
Qt容器类控件是指可容纳其他控件的控件。QFrame可 画些简单的图形,也可作为其他控件的基类,如 QToolBox,QLabel等。
QT 内建控件概览
Qt多页容器控件
QTabWidget和QToolBox是多页控件,每一页均为一 个子控件,且从0开始计数。在QTabWidget中,Tab 控件的形状和位置均可设置。
建立菜单项
输入菜单项对应的英文名字
使用QT界面设计器设计菜单系统
建立菜单项
改变菜单项的名字
使用QT界面设计器设计菜单系统
给菜单项添加对应的图标
双击菜单项对应的action
添加图标的前 提是:相关图 片已经加入到 资源中。 点击
使用QT界面设计器设计菜单系统
给菜单项添加对应的图标
菜单栏,工具栏,状态栏
标题栏 菜单栏
菜单项
工具栏
状态栏
菜单栏中可以有多个菜单;工具栏中可以有多 个工具条;状态栏中可以有多个状态。
菜单栏,工具栏,状态栏
菜单项
工具条
工具按钮
菜单栏中可以有多个菜单,一个菜单中可以有多个菜单项; 工具栏中可以有多个工具条,一个工具条中可以有多个工具按钮。
菜单栏,工具栏,状态栏
工具栏的创建
1. 使用addToolBar函数添加工具条。 2. 将工具栏按钮加入到工具条中。
fileToolBar =leToolBar->addAction(newAct);
editToolBar = addToolBar(tr("修改")); editToolBar->addAction(cutAct); editToolBar->addAction(copyAct); editToolBar->addAction(pasteAct);
QT
主要内容
带图形界面的程序如何设计? QT内建控件概览 资源文件及添加资源 菜单栏,工具栏,状态栏的设计
逻辑功能代码
界面或界面代码
输入:界面相 关控件信息到 逻辑功能代码 的映射。
逻辑功能代码 输出:逻辑功 能代码到界面 相关控件的映 射。 界面相关控件发信号,逻辑功能 代码处理信号。
void Calculator::equal() { exp+='='; listexp.push_back(tempNum); listexp.push_back("="); tempNum=""; exp+=QString::number(Calculate()); emit already(exp); }
QT中与菜单栏,工具栏,状态栏有关的类 为:QMenu;QToolBar;QStatusBar和 QAction 类。
QMenu表示菜单类;QToolBar表示工具栏类; QStatusBar表示状态栏类;Qaction表示菜单中的菜单项 和工具条中的按钮。
菜单项和工具栏按钮的创建
1. 创建QAction类的对象。 2. 设置对应的快捷键 3. 设置对应的状态栏显示信息 4. 与对应的槽函数进行连接
QT 内建控件概览
Qt输入控件
Qt提供了若干用于输入的控件。QLineEdit允许使用屏蔽字符 或校验器对输入字符进行限制,两种方式也可同时使用。 QTextEdit是 QAbstractScrollArea的派生类,可用于编辑大 规模的纯文本或是格式化文本,在编辑格式化文本时,它可显 示所有Qt格式化文本引擎所支持 的元素。QLineEdit和 QTextEdit均与系统剪贴板完美集成。
使用QT界面设计器设计菜单系统
建立菜单
双击“在这里输入”
使用QT界面设计器设计菜单系统
建立菜单
输入菜单名字,按回车键(必须)
使用QT界面设计器设计菜单系统
建立菜单
修改表示编辑菜单的对象的名字
使用QT界面设计器设计菜单系统
建立菜单项
双击“在这里输入”
使用QT界面设计器设计菜单系统
资源文件
Qt 资源系统是一个跨平台的资源机制,用 于将程序运行时所需要的资源以二进制的 形式存储于可执行文件内部。如果你的程 序需要加载特定的资源(图标、文本翻译 等),那么,将其放置在资源文件中,就 再也不需要担心这些文件的丢失。也就是 说,如果你将资源以资源文件形式存储, 它是会编译到可执行文件内部。
界面
逻辑功能代码发信号,界面相关 控件处理信号。
逻辑功 能代码 内部的 信号激 发和处 理
界面个 控件的 信号激 发和处 理
程序员调用Qobject::connent()函数
程序员调用Qobject::connent()函数; 或通过界面设计器设置
QT事件机制:/symbian-272812.htm
添加资源
右侧的编辑区有个“添加”,我们首先需 要添加前缀,比如我们将前缀取名为 images。然后选中这个前缀,继续点击添 加文件,可以找到我们所需添加的文件。 这里,我们选择 document-open.png 文 件。当我们完成操作之后,Qt Creator 应 该是这样子的:
添加资源
接下来可以: 开头的路径来找到这个文件。比如 ,我们的前缀是 /images,文件是 documentopen.png,那么就可以使用 :/images/document-open.png找到这个文件。 这么做带来的一个问题是,如果以后我们要更改 文件名,比如将 docuemnt-open.png 改成 docopen.png,那么,所有使用了这个名字的路 径都需要修改。所以,更好的办法是,我们给这 个文件去一个“别名”,以后就以这个别名来引 用这个文 件。具体做法是,选中这个文件,添加 别名信息。
界面的精确设计:(通过界面设计器或直接编码)
1. 进一步合理安排各个控件的布局。 2. 设计各个控件的名字,字体等属性。 3. 设计界面上各部件信号和槽的关联(如果需要的话)。
信号和槽的关联:
connect(&c,SIGNAL(already(QString)),ui->lineEdit,SLOT(setText(QString))); connect(ui->zero,SIGNAL(clicked()),&c,SLOT(addZero())); connect(ui->one,SIGNAL(clicked()),&c,SLOT(addOne())); connect(ui->two,SIGNAL(clicked()),&c,SLOT(addTwo())); connect(ui->three,SIGNAL(clicked()),&c,SLOT(addThree()));
选择对应的资源 选择对应的图片
使用QT界面设计器设计菜单系统
添加工具栏按钮
鼠标点击相应的action 拖到箭头所指的位置。
多文档编辑器的设计
主窗口中心界面的规划: 使用QTabWidget来做多文档显示的框架;在QTabWidget的每一个 Tab中添加一个QPlainTextEdit控件;在QPlainTextEdit控件中显示 文档内容。
表达式的值怎么计算?
计算器类的定义:
class Calculator : public QObject { Q_OBJECT public: explicit Calculator(QObject *parent = 0); signals: void already(QString); public slots: void addOne(); void addTwo(); void addPlus(); void equal(); private: int Calculate(); QString exp; QList<QString> listexp; QString tempNum; }
菜单的创建
1. 创建菜单(QMenu)对象。 2. 将菜单项对象加入到菜单对象中。
fileMenu = new QMenu(this); // fileMenu = menuBar()->addMenu(tr("文件")); fileMenu->addAction(newAct); fileMenu->addSeparator(); editMenu = new QMenu(this); editMenu = menuBar()->addMenu(tr("编辑")); editMenu->addAction(cutAct); editMenu->addSeparator(); editMenu->addAction(copyAct); editMenu->addAction(pasteAct);