文件: 数学逻辑: 以上根据位置 显示出了序号 并且根据值 调整了背景颜色 做提醒
QT 鼠标单击提取鼠标位置
1.还是在之前的MianWindow上写的
这里我的按钮的位置是屏幕下120的位置2.mainwindow.h文件:
#include <QMouseEvent> public: //构造函数 explicit MainWindow(QWidget *parent = 0); //析构函数 ~MainWindow(); //设定虚函数 virtual void mouseReleaseEvent(QMouseEvent *event); //鼠标事件 //变量 int NUM_HH; //窗口坐标
3.对应点mainwindow.cpp
/* * 2.鼠标单击按钮 显示窗口 **/ void MainWindow::mouseReleaseEvent(QMouseEvent *event) { int wd,hi,x,y; if(event->button() == Qt::LeftButton){ wd = this->geometry().width(); //获取当前界面宽度并赋值 hi = this->geometry().height(); //获取当前页面高度并赋值 x = event->pos().x(); //鼠标所在X位置 y = event->pos().y(); //鼠标所在Y位置 NUM_HH = (x/(wd/8))+(((y-120)/((hi-120)/8))*8); qDebug() << NUM_HH ; //在按钮所在的窗口区域触发 if(y>120){ //弹出新的窗口 MeasResult result; result.exec(); } } }
是在窗口下的120位置开始计算 所以先减去120
因为我的界面是8*8的 所以以上是用的84.以上点击后会跳转至MeasResult
4.1 mainresult.h 文件内:
#ifndef MEASRESULT_H #define MEASRESULT_H #include <QDialog> #include <QTableView> #include <QStandardItemModel> #include "mainwindow.h" namespace Ui { class MeasResult; } class MeasResult : public QDialog { Q_OBJECT public: explicit MeasResult(QWidget *parent = 0); ~MeasResult(); private slots: private: Ui::MeasResult *ui; }; #endif // MEASRESULT_H
4.2 对应的measresult.cpp文件:
#include "measresult.h" #include "ui_measresult.h" #include <QStandardItem> #include <QHeaderView> #include <QStandardItemModel> extern MainWindow *mainWin; MeasResult::MeasResult(QWidget *parent) : QDialog(parent), ui(new Ui::MeasResult) { ui->setupUi(this); //提供了用于存储自定义数据的通用模型 QStandardItemModel *model = new QStandardItemModel(0,8); // model->setHeaderData(0,Qt::Horizontal,tr("column 信息 底下被隐藏 所以不做设定")) //插入数据 //model->item(4,8); model->insertRows(0,1); //插入第一行 model->setData(model->index(0,0), tr("板 序")); model->setData(model->index(0,1), tr("产品型号")); model->setData(model->index(0,2), tr("电压上限")); model->setData(model->index(0,3), tr("电压下限")); model->setData(model->index(0,4), tr("电流上限")); model->setData(model->index(0,5), tr("电流下限")); model->setData(model->index(0,6), tr("结果判定")); model->setData(model->index(0,7), tr("通 道 数")); model->insertRows(1,1); //插入第二行 model->setData(model->index(1,0), mainWin->NUM_HH+1); model->setData(model->index(1,1), mainWin->condMeasure.product_model); model->setData(model->index(1,2), mainWin->condMeasure.u_li.up); model->setData(model->index(1,3), mainWin->condMeasure.u_li.down); model->setData(model->index(1,4), mainWin->condMeasure.i_li.up); model->setData(model->index(1,5), mainWin->condMeasure.i_li.down); model->setData(model->index(1,6), mainWin->paraMeasure[mainWin->NUM_HH].ok); //根据返回值 设定对应的背景颜色 if((mainWin->paraMeasure[mainWin->NUM_HH].ok) == 0){ //0 ng model->item(1,6)->setBackground(Qt::red); }else if((mainWin->paraMeasure[mainWin->NUM_HH].ok) == 1){ //1 ok model->item(1,6)->setBackground(Qt::green); }else{ //2 none model->item(1,6)->setBackground(Qt::gray); } model->setData(model->index(1,7), mainWin->condMeasure.channel_num); model->insertRows(2,1); //插入第三行 model->setData(model->index(2,0), tr("电压一结果")); model->setData(model->index(2,1), tr("电压一判定")); model->setData(model->index(2,2), tr("电流一结果")); model->setData(model->index(2,3), tr("电流一判定")); model->setData(model->index(2,4), tr("电压二结果")); model->setData(model->index(2,5), tr("电压二判定")); model->setData(model->index(2,6), tr("电流二结果")); model->setData(model->index(2,7), tr("电流二判定")); model->insertRows(3,1); //插入第四行 model->setData(model->index(3,0), QString::number(mainWin->paraMeasure[mainWin->NUM_HH].V1,'f',3)); model->setData(model->index(3,1), mainWin->paraMeasure[mainWin->NUM_HH].pV1); model->setData(model->index(3,2), QString::number(mainWin->paraMeasure[mainWin->NUM_HH].I1,'f',3)); model->setData(model->index(3,3), mainWin->paraMeasure[mainWin->NUM_HH].pI1); model->setData(model->index(3,4), QString::number(mainWin->paraMeasure[mainWin->NUM_HH].V2,'f',3)); model->setData(model->index(3,5), mainWin->paraMeasure[mainWin->NUM_HH].pV2); model->setData(model->index(3,6), QString::number(mainWin->paraMeasure[mainWin->NUM_HH].I2,'f',3)); model->setData(model->index(3,7), mainWin->paraMeasure[mainWin->NUM_HH].pI2); ui->tableView->horizontalHeader()->setVisible(false);//显示或隐藏表头 ui->tableView->verticalHeader()->setVisible(false);//显示或隐藏序列行 ui->tableView->setAutoScroll(false);//自动滚动条 ui->tableView->resizeColumnsToContents(); //根据内容调整大小 ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);//根据容器调整大小 ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);//只读 ui->tableView->setSelectionBehavior(QAbstractItemView::SelectItems); //设置选中模式为单元格 ui->tableView->setSelectionMode(QAbstractItemView::SingleSelection); //设置选中单行 ui->tableView->setModel(model); //使用 } MeasResult::~MeasResult() { delete ui; }
5.看一下效果
6.谢谢观看 一起学习 L_taxy@163.com;
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算