Qt双界面以及画图笔记

主界面cpp调用另一界面

场景:点击主界面“开始”按钮,弹出注册界面,注册成功了之后才能真正开始计算。
注意:注册界面要使用Dialog类型。
主界面cpp里要引用注册界面的头文件

#include "registerdlg.h"

函数体里调用代码如下:

        registerDlg rdlg;//registerDlg 是注册界面   //标1
        rdlg.setModal(false);
        rdlg.exec();//标2

补充:
标1:之前看到一些教程,如下,但这种方法显示的是一个空界面,注册界面的控件都不显示,所以未用。

registerDlg *rdlg=new registerDlg(rhis);

标2:有些教程使用rdlg.show()语句,但我用这个语句时,注册界面总是一闪而过,所以未用。

主界面cpp里对另一界面控件操作

场景:在主界面的cpp里将注册界面的控件的text写到文件里。
方法:主界面里无法直接调用注册界面的ui—>控件,所以将控件的text赋值给一个全局变量,然后在主界面.cpp里使用该全局变量。

全局变量的使用

需要用到一个跨文件使用的全局变量,cpp里一次定义,对应的头文件里一次声明,然后在多个引用了上述头文件的cpp里可以使用。注意只能一次定义和一次声明,否则会报错多次定义。
在cpp里的定义:

#include <QMessageBox>
#include <QString>
QString Rcode="";//定义

在h里的声明:

#include <QDialog>
extern QString Rcode;//声明

QCustomPlot画图多个plotLayout的y轴对齐

由于不同的图的纵坐标的刻度数值不一样,y轴没有对齐不太好看,使用下面的语句进行对齐:

bAxisRect = new QCPAxisRect(ui->widget_PosLine, true);//widget_PosLine是图所在的控件
lAxisRect = new QCPAxisRect(ui->widget_PosLine, true);
hAxisRect = new QCPAxisRect(ui->widget_PosLine, true);
//一个控件里多个图
ui->widget_PosLine->plotLayout()->addElement(0, 0, bAxisRect);
ui->widget_PosLine->plotLayout()->addElement(1, 0, lAxisRect);
ui->widget_PosLine->plotLayout()->addElement(2, 0, hAxisRect);
//下面对齐y轴
mgroup=new QCPMarginGroup(ui->widget_PosLine);
bAxisRect->setMarginGroup(QCP::msLeft | QCP::MarginSide::msRight,mgroup);
lAxisRect->setMarginGroup(QCP::msLeft | QCP::MarginSide::msRight,mgroup);
hAxisRect->setMarginGroup(QCP::msLeft | QCP::MarginSide::msRight,mgroup);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值