您的位置:首页 > 编程语言 > Qt开发

嵌入式软件开发QT-02-简单调试、信号与槽机制、窗口切换、模态与非模态窗口

2017-10-15 21:24 591 查看
1.qtcreator的简单调试方法

两种最基本的调试方式

1.1使用creator的debug功能

编写程序后,点击代码编辑区左侧可以设置断点



然后点击debug按钮开始调试



会出现调试界面



在调试工具栏有选项



continue跳出当前断点,程序继续执行

stop结束调试

step over进行下一步

step into进入函数内部

step out跳出函数

restart重新开始调试

最后是查看内存

1.2使用qDebug()函数

新建空工程,只包含主函数,写入如下代码

#include <QApplication>
#include <QWidget>
//使用第一种方法时不需要添加此头文件
#include <QDebug>

int main(int argc, char *argv[]){
QApplication a (argc, argv);
QWidget widget;
int x = widget.x();
//将变量当作参数输出
qDebug("x: %d",x);
int y = widget.y();
QRect geometry = widget.geometry();
//使用重载输出流运算符,类似于cout函数
qDebug()<<"geometry"<<geometry;
QRect frame = widget.frameGeometry();
return a.exec();
}


2.信号与槽功能(以点击按钮关闭主窗口为例)

2.1使用design界面的信号与槽设计器



点击进入信号与槽编辑模式



使用拖拽直接编辑,如果右侧没有出现所需动作,勾选下面的选项卡

2.3使用自动生成代码方式

右键点击发出信号的控件,点击go to slot,并且选择动作



然后会转到代码手动添加close();函数



2.4使用connect函数关联

修改类的源文件,在setup函数做如下改动



以上是四种方法实现信号与槽的机制

3.窗口切换

新建一个qt图形界面工程,并且在主窗口中添加一个按键、再新建一个qt设计师类



右键按键,转到槽(go to solt)在槽中添加show函数



最终主函数代码为

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}

MainWindow::~MainWindow()
{
delete ui;
}

void MainWindow::on_pushButton_clicked()
{
//在槽函数中显示对话框
dialog.show();

}


然后在主窗口的头文件中,添加另一个窗口类的头文件以及申请实体

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

//添加 所要显示的对话框的头文件
#include "dialog.h"

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();

private slots:
void on_pushButton_clicked();

private:
Ui::MainWindow *ui;

//新建一个对话框的实体
Dialog dialog;
};

#endif // MAINWINDOW_H


最终结果



4.设置模态对话框

模态对话框就是这个应用当前只能操作本对话框,锁定其他对话框

在show函数之前添加设置模态的语句

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}

MainWindow::~MainWindow()
{
delete ui;
}

void MainWindow::on_pushButton_clicked()
{
//设置为模态对话框
dialog.setModal(true);
//在槽函数中显示对话框
dialog.show();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: