今日为了应付学校作业要求

决定现学qt来制作界面

毕竟c++不像在这方面c#可以那么方便

qt主要依靠信号、槽来实现类似winform中的消息

鉴于要尽快做完,故而没有细看qt

只是大概了解了下界面的制作方法

所以依然还有不少问题

好了我先从qt设计器开始了。

嗯,很好用的界面编辑器。。一目了然啊~~~

遇到的问题有:

1、槽明明在窗口类声明了,可设计器还是找不到...

解决:这个应该还需要在某些地方增加点代码,毕竟我find了一下别人demo的槽函数名字,发现出现在了好几个地方

嗯。。这次时间关系没有深究,百度了一下,应该在设计器的左上角位置有个编辑信号/槽

然后拖动控件改变发送者接受者等等。

最后在主类中加入在设机器中添加时槽函数的名字:

public slots://添加进程槽void rcv_addp();//删除进程槽void rcv_killp();//显示对应进程段页表void rcv_show();//刷新进程表void rcv_flushow();//调度进程void rcv_play();

2、与控件有关的设置网上资料略少,查找了不少时间,故而记录一下

主要关于tableview,combobox的

tableview://tableview可以通过itemview来设置各类参数以及添加删除数据

QStandardItemModel *memmodel;memmodel = new QStandardItemModel();//设置列

memmodel->setColumnCount(2);//设置每列的头名称(注意中文要用QString::fromLocal8Bit()...不要问我为什么...)
memmodel->setHeaderData(0, Qt::Horizontal, QString::fromLocal8Bit("地址"));
memmodel->setHeaderData(1, Qt::Horizontal, QString::fromLocal8Bit("空间"));//将model设置给ui的tableview
ui.tableView->setModel(memmodel);
//设置表头为固定

ui.tableView->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Fixed);
ui.tableView->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Fixed);//设置表头宽度..我是按百分比设置的
ui.tableView->setColumnWidth(0, 0.3 * ui.tableView->geometry().width());
ui.tableView->setColumnWidth(1, 0.58 * ui.tableView->geometry().width());//设置cell中每列的高度
ui.tableView->verticalHeader()->setDefaultSectionSize(12);
//隐藏行号

ui.tableView->verticalHeader()->setHidden(true);
//设置一次选中一行

ui.tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
//添加一行元素//从左到右三个参数依次是:第i行cell,第0列,内容。注意内容要是QString类型的

memmodel->setItem(i, 0, new QStandardItem(QString::number(mt.getphyaddr(i))));

噢...这代码着色好像和直接粘贴没区别。。。

//获取选中的数行中第i行第1列的值
QItemSelectionModel *selections = ui.tableView_state->selectionModel();QModelIndexList selected = selections->selectedRows();QModelIndex t_data;mt.addmaxclock();for (auto index : selected) {//这里的selected集合即为选中的所有cell的集合,一次取一个cell//然而因为我设置的一次选中一行cell,这里我只需要获取第一列即可t_data = statemodel->index(index.row(), 0);//        QMessageBox::information(this, "aaa", t_data.data().toString());int pgnum = t_data.data().toInt();if (!it->pg[pgnum]->isRun()) {mt.addpagetomem(it->pg[pgnum]);}else {it->pg[pgnum]->clock = mt.getmaxclock();mt.addmaxclock();}}

接下来是combobox的

combobox:

//清空combobox

ui.cb_killp->clear();//添加item(第一个参数为text...第二个不知道什么用,显然不是列表的索引号)

ui.cb_killp->addItem(elem.name.c_str(), elem.pid);//获取当前combobox选中的值string name = ui.cb_killp->currentText().toStdString();//顺便,combobox中currentindexchanged信号的问题//鉴于我每次增加一个process的时候,都会刷新一次combobox的列表//这样也会出发currentindexchanged信号,同时他的槽函数也会更改一下combobox的内容//这样又会发出一个currentindexchanged信号,以至于死循环//解决方法是刷新combobox的时候关闭信号即可

ui.cb_seep->blockSignals(true);

最后记录一下vector的问题

我意图用一个指针来指向vector中的一个数据...

当然是可以的..但当vector容量增加的时候,地址也会发生改变

最后干脆改成数组了..

转载于:https://www.cnblogs.com/magina888/p/4570039.html

关于qt学习的一点小记录(1)相关推荐

  1. java学习中,字符串使用(比较、构造方法)(java 学习中的小记录)

    java学习中,字符串使用(比较.构造方法)(java 学习中的小记录)作者:王可利(Star·星星) String的使用 1.在内存中是如何保存字符串. == :比较的是地址(引用数据类型) equ ...

  2. java学习中,异常和错误的简介、捕获异常、抛出异常、自定义异常、finally关键字(java 学习中的小记录)

    java学习中,异常和错误的简介.捕获异常.抛出异常.自定义异常.finally关键字(java 学习中的小记录) 参考文章: (1)java学习中,异常和错误的简介.捕获异常.抛出异常.自定义异常. ...

  3. java学习中,instanceof 关键字 和 final 关键字、值的传递(java 学习中的小记录)...

    java学习中,instanceof 关键字 和 final 关键字.值的传递(java 学习中的小记录)作者:王可利(Star·星星) instanceof 关键字 作用: 1.用来判断某个对象是否 ...

  4. java学习中,DVD管理系统纯代码(java 学习中的小记录)

    java学习中,DVD管理系统纯代码(java 学习中的小记录)作者:王可利(Star·星星) class DvdMain{public static void main (String[] args ...

  5. USB HID学习:一点开发记录

    某天,曾经的前同事找我,说有个USB项目.因为知道我当时离职在找工作,于是转给我,然后介绍客户给我. 了解需求后,我分析了一下,主要是与USB设备通信的上位机,MFC我熟悉,USB找了一个开源的库hi ...

  6. 最近关于编程学习的一点小体会

    从来没有如此专注于编程过,即使在大一学习课程中学习C++时也未有过这样主动,不觉厌烦,就更不用说Java学习的时候了,那时候就是上课吧,然而感觉效率一点也没有,根本没有心去学习,而那时也觉得编程如此难 ...

  7. 理财课程学习的一点小感想

    最近疫情期间,待在家里就安静的学习理财. 要从小时候接触了穷爸爸与富爸爸.小狗钱钱.巴菲特名人名言这几本书来说起,那时候小小年龄青春期逆反心理喜欢一个人待着,没什么玩乐,就把书反复看了好多遍,小小年龄 ...

  8. Qt学习总结——飞机大战小游戏制作

    Qt学习总结--飞机大战小游戏制作 1. 需求分析 这篇文章写于2020年暑假,完成学校实训项目之后,对自己的项目实践做了一个总结,回顾整个项目的制作过程,同时也复习一下Qt的相关知识,总结项目制作过 ...

  9. 深度学习训练的小技巧,调参经验。总结与记录。

    深度学习训练的小技巧,调参经验.总结与记录. 2016-10-23 23:07 390人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. 经常会被问到你用深度学习训练 ...

最新文章

  1. Java:获取数组中的子数组的多种方法
  2. 如何运用python爬游戏皮肤_Python爬虫实战之 爬取王者荣耀皮肤
  3. Bit-Z如何注册?【新手操作指南】
  4. android id设计模式,Android与设计模式话题
  5. C++之inline函数
  6. 【POJ - 3041】Asteroids (二分图,最小点覆盖)
  7. 如何在代码中让按钮高亮_各种博客的代码高亮是如何实现的
  8. ​什么问题最让程序员头秃?我们分析了11种语言的11000个问题
  9. html选择树形菜单代码,jquery+css实现html选择树或树形菜单
  10. python 获取当前是星期几_基金定投选星期几更划算?[python统计分析]
  11. Windows Server 2016系统高级管理系列-DFS分布式文件系统
  12. visual studio (vs)常用快捷键
  13. 二叉树的镜像(剑指 Offer 27)
  14. 传奇服务器修改变量,课程列表-传奇服务端制作修改教程-4.3变量-学传奇
  15. CrackMe-001
  16. win7计算机高级还原,最好用的win7一键恢复64位方法
  17. CDN是什么?使用CDN有什么优势?
  18. linux怎么打出管道命令这个符号,linux 管道命令 竖线 ‘ | ’
  19. HyperLynx中层叠设计实例
  20. 用Google实现站内搜索

热门文章

  1. 磁盘 I/O 的概念
  2. linux软件包管理-rpm
  3. 精华阅读第 9 期 |滴滴出行 iOS 客户端架构演进之路
  4. MD5SHA加密util类(Java)
  5. IT服务台的进化(3)--虚拟服务台
  6. freebsd php 编译 mysql sql2005_问下:Freebsd下用php连接ms sql server
  7. plot与legend画图与图例
  8. Python网络_TCP/IP简介
  9. centos 多个yum源,系统怎么选择
  10. 【SoftwareTesting】Lab 2