我知道这个:bufdo命令,并试图将它与我记录的宏(@a)相结合,在我加载的每个头文件的正确位置添加一个#include.但是,我找不到在每个缓冲区上运行宏的简单方法.有没有办法通过ex模式执行宏,这是什么:bufdo要求?还是有另外一个我失踪的命令?
例如,假设我有一个类:
class Foo
{
public:
std::string& Name()
{
m_maybe_modified = true;
return m_name;
}
const std::string& Name() const
{
return m_name;
}
protected:
std::string m_name;
bool m_maybe_modified;
};
Run Code Online (Sandbox Code Playgroud)
在代码中的其他地方,我有这样的事情:
Foo *a;
// Do stuff...
std::string name = a->Name(); // <-- chooses the non-const version
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么编译器在这种情况下会选择非const版本?
这是一个有点人为的例子,但我们试图解决的实际问题是如果对象已经改变则定期自动保存,并且指针必须是非const的,因为它可能在某些时候被更改.
我目前在Linux上的Qt重C++/Python环境中开发了许多应用程序,根据需要移植到PC/Mac.我使用嵌入在C++中的Python以及独立的GUI.Qt用于xml解析/事件处理/ GUI /线程等等.现在我所有的Python工作都在PyQt中,我想看看每个人如何看待PySide.我很感兴趣,因为它是内部的,因此应该支持更多的组件,希望更好的集成.你有什么经历?
我知道以前曾经问过这个问题,但是我希望能够恢复对话.
我在PyQt4中有一个小程序,我想将程序编译成Exe.我正在使用py2exe来做到这一点.我可以使用以下代码在Windows标题栏中成功设置图标,但是当我将其编译为exe时,图标会丢失,我会看到默认的Windows应用程序.这是我的计划:
import sys
from PyQt4 import QtGui
class Icon(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Icon')
self.setWindowIcon(QtGui.QIcon('c:/python26_/repy26/icons/iqor1.ico'))
app = QtGui.QApplication(sys.argv)
icon = Icon()
icon.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)
****这是py2exe****的setup.py
from distutils.core import setup
import py2exe
setup(windows=[{"script":"iconqt.py"
,"icon_resources": [(1, "Iqor1.ico")]}]
,options={"py2exe":{"includes":["sip", "PyQt4.QtCore"]}})
Run Code Online (Sandbox Code Playgroud) 所以我开始学习Qt 4.5并发现Signal/Slot机制有所帮助.但是,现在我发现自己正在考虑两种类型的架构.
这是我会用的
class IDataBlock
{
public:
virtual void updateBlock(std::string& someData) = 0;
}
class Updater
{
private:
void updateData(IDataBlock &someblock)
{
....
someblock.updateBlock(data);
....
}
}
Run Code Online (Sandbox Code Playgroud)
注意:代码内联为简洁起见.
现在我可以发出信号
void Updater::updateData()
{
...
emit updatedData(data);
}
Run Code Online (Sandbox Code Playgroud)
这是更清洁,减少了界面的需要,但我应该这样做只是因为我可以吗?第一个代码块需要更多的输入和更多的类,但它显示了一种关系.使用第二块代码,一切都更"无形".哪一个更可取,如果是个案基础,那么指导方针是什么?
好的,使用Qt,我想知道如何在任何时间点检测鼠标的当前状态 - 没有 MouseEvent.
使用QCursor :: pos(),您可以获得它的位置,但有没有办法确定按钮的当前状态?
基本上,我希望在计时器关闭时验证鼠标的状态,因此它不会与任何特定的MouseEvent相关,因此没有要查询的MouseEvent.我需要知道如何在没有MouseEvent的情况下查询鼠标的状态 - 特别是按钮的状态.
哦,我正在使用Qt 3,所以如果在Qt 4中添加了这样的功能但不在Qt 3中,它对我没什么帮助(尽管知道它仍然很好).
我正在使用Qt和Visual Studio 2008在一个项目中进行一些重构,我想知道是否有一种简单的方法来查找从未调用过的函数和方法?
我目前正在一个团队工作,我们正在"使用"一个subversion存储库.我说"使用",因为实际上,每个人都只是通过samba共享直接在服务器上编辑文件,而我们的架构师每隔一段时间就通过我们的更改从该服务器进行提交,然后将其推送到服务器.
所以基本上我们错过了能够从不同用户那里获得有意义的提交消息,并且能够按照我们喜欢的方式提交.
我一直试图引起人们对分布式系统的兴趣,以及我们所拥有的工作流程如何能够与git(我们在本地机器上提交然后将更改集推送给他进行审核)非常好地设置,但是我不觉得我有足够的git经验.我的大部分DVCS经历都是善变的.
每个人都在使用tortoisesvn在Windows环境中工作,这就是他们习惯与系统交互的方式,但他们偶尔会使用PuTTY在其中一个Linux服务器上工作,并且知道如何进行命令行提交.
有什么方法可以解决这个问题,我已经看到了在SVN和某些DVCS之间建立网关的一些工作,有没有人有在这样的环境中设置和工作的经验?
如何从SVN到DVCS进行全面迁移?
我有一个包含QMap对象的类:
QMap<QString, Connection*> users;
Run Code Online (Sandbox Code Playgroud)
现在,在下面的函数Foo()中,if子句总是返回false,但是当我遍历map时,比较的QString,即str1存在于键中.
void Foo(QString& str1, QString& str2)
{
if(users.contains(str1))
users[str1]->doStuff(str2);
else
{
for(QMap<QString, Connection>::iterator iter = users.begin();
iter!= users.end();iter++)
qDebug()<<iter.key();
}
}
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?为什么不包含()返回true?
我正在开发一个应用程序,我想继续从远程主机接收图像并将其显示在我的屏幕上.为此我遵循给定的策略1)我有一个主要的QWidget对象,其中包含QImage(工作正常)2)从远程主机接收的图像绘制在QImage对象上,这项工作是在使用QPainter的工作线程中完成的.(工作正常)3)但问题是QWidget上没有更新图像,除非我调整窗口小部件,因为为QWidget调用了重绘事件...现在,如果我从工作线程重新绘制QWidget,它会给出错误" QPixmap:在GUI线程之外使用pixmaps并不安全"..和应用程序崩溃.
对此有何帮助?