关于qt学习的一点小记录(1)
今日为了应付学校作业要求
决定现学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(); //设置每列的头名称(注意中文要用QString::fromLocal8Bit()...不要问我为什么...)
memmodel->setHeaderData(, Qt::Horizontal, QString::fromLocal8Bit("地址"));
memmodel->setHeaderData(, Qt::Horizontal, QString::fromLocal8Bit("空间")); //将model设置给ui的tableview
ui.tableView->setModel(memmodel);
//设置表头为固定 ui.tableView->horizontalHeader()->setSectionResizeMode(, QHeaderView::Fixed);
ui.tableView->horizontalHeader()->setSectionResizeMode(, QHeaderView::Fixed); //设置表头宽度..我是按百分比设置的
ui.tableView->setColumnWidth(, 0.3 * ui.tableView->geometry().width());
ui.tableView->setColumnWidth(, 0.58 * ui.tableView->geometry().width()); //设置cell中每列的高度
ui.tableView->verticalHeader()->setDefaultSectionSize();
//隐藏行号 ui.tableView->verticalHeader()->setHidden(true);
//设置一次选中一行 ui.tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
//添加一行元素 //从左到右三个参数依次是:第i行cell,第0列,内容。注意内容要是QString类型的 memmodel->setItem(i, , 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(), );
// 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容量增加的时候,地址也会发生改变
最后干脆改成数组了..
关于qt学习的一点小记录(1)的更多相关文章
- 关于qt学习的一点小记录(2)
嗯...这次接了个单 要求图形界面,刚好可以巩固并学习下QT.毫不犹豫的就接了 下面记录下出现的问题: 1. QWidget和QDialog QDialog下的槽函数有accept()与reject( ...
- 最近关于Qt学习的一点碎碎念
最近关于Qt学习的一点碎碎念 一直在使用Qt,但是最近对Qt的认识更加多了一些.所以想把自己的一些想法记录下来. Qt最好的学习资料应该是官方的参考文档了.对Qt的每一个类都有非常详细的介绍.我做了一 ...
- Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录)
Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录) 作者:王可利(Star·星星) 效果图: 代码如下: class Star8 { public static void m ...
- Java 需要记得、了解的关键词 (Java 学习中的小记录)
Java 需要记得.了解的关键词 (Java 学习中的小记录) 作者:王可利(Star·星星) 总结:本次随笔,仅且拿来平时翻阅记忆用
- Java 逻辑运算符、位运算符、移位操作符 总结(Java 学习中的小记录)
Java 逻辑运算符.位运算符.移位操作符 总结 作者:王可利(Star·星星) 逻辑运算符,表格如下: 解析逻辑运算符表: 1.与 (&) 特点:两个都为真的时候,结果为真.两个为 ...
- 关于Mybatis的一点小记录(parameterType)
1.Mybatis的parameterType有两个比较常用的,一个是类的对象,还有一个就是Map,然后取值的方法也很简单: 基本数据类型:#{参数} 获取参数中的值 复杂数据类型:#{属性名} ,m ...
- Java学习中,常用的命令管理(Java 学习中的小记录)
Java学习中,常用的命令管理 作者:王可利(Star·星星) 一.Window中常见的dos命令 在哪里操作dos命令: Win7 ---> 开始 ---->所有程序---& ...
- 关于EF的一点小记录
今日新闻:朝鲜要改革开放了!!!比你牛逼的人都在努力,你还有理由懒惰吗? 宇宙强大IDE配套的EF问题记录 今天做数据添加时,Id我设置为int类型了,结果在做Add操作时报的错让我摸不着头脑,后来问 ...
- try catch 一点小记录
这两天做了新的需求,做完之后 在测试环境下 完美通关.之后部署到了预发布环境,然而怎么尝试都不通过.刚开始看到 预发布的一个配置文件错了.发邮件改了下,但是依然流程跑不通.之后 一步步在测试环境看代码 ...
随机推荐
- Spring的工作原理核心组件和应用
Spring框架 Spring 是管理多个java类的容器框架,注意是类不管理接口. Spring 的主要功能 Ioc 反转控制和 DI 依赖注入. 注入的方式可以是构造函数赋值也可以是 set方法赋 ...
- node js npm 和 cnpm的使用
安装nodejs后会有npm命令 npm 可以安装node插件 cnpm使用的是淘宝网的镜像http://npm.taobao.org 安装命令提示符执行:npm install cnpm -g -- ...
- Android Support库百分比布局
之前写过一篇屏幕适配的文章Android 屏幕适配最佳实践,里面提到了类似百分比布局的东西,可是该方法缺点非常明显,就会添加非常多没用的数据,导致apk包变大. 而谷歌的support库中,添加了一个 ...
- 在WIN7系统下用Quartus ii 11.1 NIOS II 11.1 有时候会出现Nios II 的Run as hardware 中报错:Downloading ELF Process failed
nios工程在编译通过后RUN的过程中出现Error Running Nios II Project: ‘Downloading ELF Process failed’问题原因: 1.nios2 cp ...
- _js day9
- iOS的Bundle资源束制作
在静态库的制作中,很多时候我们的静态库也是带着文件,图片和多媒体资源的. 若只是直接加入到项目中也是可以,但是,考虑到方便管理(方便插件使用者的管理),我们希望把插件的资源文件打成一个包来管理. 当然 ...
- js 计算两个日期之间的周数
//返回两个日期相差的周数 function WeeksBetw(date1, date2) { //这里的date1,date2都是Date对象 var d1 = new Date(date1); ...
- hdu Red and Black
算法:深搜 题意:就是让你找到一共可以移动多少次,每次只能移到黑色格子上, Problem Description There is a rectangular room, covered with ...
- hdu EXCEL排序
Problem Description Excel可以对一组纪录按任意指定列排序.现请你编写程序实现类似功能. Input 测试输入包含若干测试用例.每个测试用例的第1行包含两个整数 N (<= ...
- [Search Engine] Compression in Inverted Index
最近在学一些搜索引擎的内容,感觉挺费劲,所以就用博客当做自己的笔记,遇到一些需要整理的部分,就在这里整理一下. 今天的内容是对inverted index进行压缩.核心思想,用我自己的话来总结,就是“ ...