×

qt文件.pos

qt文件.pos的简单介绍

admin admin 发表于2023-03-21 07:52:06 浏览45 评论0

抢沙发发表评论

本文目录一览:

Qt里的QMouseEvent的函数有一个是pos,一个是globalPos,我大概理解的是后者是相对整个桌面的~~

你理解反了。后者是相对窗口的,前者才是相对整个桌面。

新建一个窗口程序,然后创建一个QMenu对象。在构造函数里初始化

menu = new QMenu("menu", this); //menu在头文件声明

QAction *action = new QAction(tr("1111"), this); //为使目录较大,能看见,我们添加一个action

menu-addAction(action);

然后在mousePressEvent里看到效果

void Dialog::mousePressEvent(QMouseEvent *e)

{

if(e-button() == Qt::RightButton) //鼠标右键。避免无法关掉窗口

{

QPoint p(0, 0);

//menu-exec(p); //测试用,坐标相对于桌面

menu-exec(e-globalPos()); //坐标相对于窗口

//menu-exec(e-pos()); //坐标相对于桌面

}

}

可以看到,pos不管窗口怎样移动,menu总是出现在相同的地方。globalPos相对于窗口,跟着窗口移动

Qt中如何修改文件中的内容

使用QFile类进行文件操作不需要显式获得文件当前游标,使用seek设置当前游标位置,它会自动转移到pos参数所指向的位置,然后直接读写就行了。

请教一下,QT 中读取文件时,有没有倒着读取的。比如我想读取文件后100*100个数据,C/c++的seek函数就可以

QT的QIOdevice,QTextStream等也有seek函数,你可以调用它以实现你所需的功能。

QFile file("/home/hamad/lesson11.txt");

if(!file.open(QIODevice::ReadOnly)){

QMessageBox::information(0,"error", file.errorString());

}

QTextStream in(file);

//in.pos(); //返回当前文件指针位置

in.seek(POS)//POS为你要跳转到的位置,这里最好接收下返回值,以便出错处理

while(!in.atEnd()){

QString line =in.readLine();

QStringList fields = line.split(",");

model-appendRow(fields);

}

file.close();