小编mar*_*n2k的帖子

Qt:调整包含QPixmap的QLabel的大小,同时保持其宽高比

我使用QLabel向用户显示更大,动态变化的QPixmap的内容.根据可用空间,使这个标签更小/更大会很好.屏幕尺寸并不总是与QPixmap一样大.

如何修改QLabel QSizePolicysizeHint()QLabel以调整QPixmap的大小,同时保持原始QPixmap的宽高比?

我无法修改sizeHint()QLabel,设置minimumSize()为零无济于事.hasScaledContents()QLabel上的设置允许增长,但是打破了宽高比...

子类化QLabel确实有帮助,但是这个解决方案只为一个简单的问题添加了太多的代码......

任何聪明的提示如何在没有子类化的情况下完成此任务?

c++ qt qt4 qlabel

71
推荐指数
6
解决办法
8万
查看次数

如何在MATLAB/Octave中获得实数整数溢出?

我正在为MATLAB/Octave中的一些VHDL代码开发一个验证工具.因此,我需要生成"真正"溢出的数据类型:

intmax('int32') + 1
ans = -2147483648
Run Code Online (Sandbox Code Playgroud)

稍后,如果我可以定义变量的位宽,那将会很有帮助,但现在这不是那么重要.

当我构建一个类似C的例子时,变量增加直到它小于零,它会永远旋转:

test = int32(2^30);
while (test > 0)
    test = test + int32(1);
end
Run Code Online (Sandbox Code Playgroud)

我尝试的另一种方法是自定义"溢出" - 例程,每次更改数字后都会调用它.这种方法非常缓慢,不实用,根本不适用于所有情况.有什么建议?

matlab overflow integer-overflow

14
推荐指数
2
解决办法
7912
查看次数

Doxygen:使用C++和VHDL进行项目的无缝文档

我正在建立一个关于某种库的文档,它包含一个C/C++部分和一个VHDL部分,以及一些有指导性的doxygen页面.他们必须被置于一个独立的群体中.到目前为止,一切都很有效,漂亮而蓬松......

但是,如果我想通过同时使用OPTIMIZE_OUTPUT_VHDL = YES和优化c子目录的输出来优化vhdl子目录中的输出OPTIMIZE_OUTPUT_C = YES呢?

据我所知,在我的情况下使用doxygen-tags并不是最佳的,因为它在每个子目录中引入了新的doxyfile.conf文件,并在每个子目录中独立运行doxygen.所以,这样做我不能将两个部分(c + vhdl)放在同一组的不同子组中,并且两个部分之间的链接是不可能的.此外,整个模块应该是"自包含的",可以包含在更大的文档中,而不需要在此解决方案中涉及特殊的构建结构......

你会怎么做?

c++ doxygen vhdl

8
推荐指数
1
解决办法
1318
查看次数

Qt:实现"类似示波器"的实时绘图的最佳方式

我正在研究用于Qt的Gui-Module来绘制基于Qwt的数字示波器中的实时测量.到目前为止一切都可以,但也许还有一些功能需要添加;-)

目前,数据在QVectors中按列存储,并在一个单独的QObject中与一个全局timeReference QVector一起存储.因此,可以逐行丢弃数据,以便仅将Meusurement保持到某个过去.所有QVectors总是具有相同的长度.然后,可以在QwtPlot中按时间正确地绘制完整数据.

我想更多地封装数据存储,以便更加独立于测量.因此,为每个测量添加一个单独的时间坐标列表并将它们放在一个单独的QObject中是很好的,它接受和传递数据.然后将有10或20个这样的QObject,每个数据通道一个,它们由QwtPlot上的上覆QObject单独绘制.

现在,数据可以是动态的 - 无论外部是否可以看到数据在两者之间的存储,更改或丢弃方式.

我的问题是:这很聪明吗?20或30个QObjects包含每10000个测量值,10000个时间值,加上一个相似大小的单独存储区域(动态填充),其中一个子集ob数据被提供用于绘图...?将QObject中的每个测量值作为信号接收是否合理,在1kHz左右发射?信号/槽-一部分来自制造的想法每后面的对象一个的QThread,并执行实时过滤,像上的数据低通或FFT - 因此,信号/槽连接是方便的CONTROLL输出在多线程环境?

如何在我的OBjects中有效存储数据?我正在考虑两个QList,一个用于时间,一个用于珍贵数据.然后动态分配两个普通的双数组用于动态访问,其指针与长度一起放在结构中并由accessData(pastTime)方法返回.动态存储器由从"现在"到过去的某个点的timeVal /测量组合填充,可由信号设置.QObject中的互斥体保护的所有东西都很脆弱.

当丢弃旧值时,必须从头开始搜索QList,以获得足够年轻的第一个值,保留在该索引之前的那个值.由于其upperBound()函数,QMap是否更智能?我认为隐藏的开销不值得.

一个专业人员将如何很好地,有效地或没有任何麻烦地尝试解决这个问题?我应该知道的特殊Qt功能?或者甚至是那里的免费解决方案?无论如何,这样一个基本问题的文字很多......感谢您在这里阅读;-)

提前致谢

马文

edith:在stijns评论之后做了一些清理.

c++ user-interface qt

6
推荐指数
1
解决办法
1万
查看次数

make:调用多个文件的多个目标的命令?

我希望优化现有的Makefile.它用于为给定目录中的每个日志文件创建多个图(使用Octave),使用脚本文件为每个以logfilename作为参数的图.在片刻中,我对每种可用的绘图都使用一个单独的规则,手写调用Octave,给出特定的scriptfile/logfile作为参数.

如果每个绘图都有"他的"八度脚本作为依赖项(当然还有日志文件),那将是很好的,因此如果他的脚本被更改,则只重新生成一个绘图.

由于我不想输入那么多,我想知道如何通过仅使用一条通用规则来构建"一个"情节来简化这一点?

为了更清楚:

  • 日志文件:"$(LOGNAME).log"
  • 脚本文件:"plot $(PLOTNAME).m"创建"$(LOGNAME)_ $(PLOTNAME).png"

我想到的第一件事:

%1_%2.png: %1.log
    $(OCTAVE) --eval "plot$<2('$<1')"
Run Code Online (Sandbox Code Playgroud)

但似乎不允许这样做.有人能给我一个暗示吗?

makefile

3
推荐指数
1
解决办法
2634
查看次数

移植C++ - 从Windows到Unix的代码:systemcalls与函数名称冲突

我正在将一些狡猾的C++ Windows代码移植到Linux上,它在每个类中都使用了"open"和"close"的功能......非常糟糕的风格,还是?幸运的是,这不是Windows中的问题,因为他们的系统调用被命名为不同.

当我尝试调用systemcalls open()或close()时,我收到一些关于"没有匹配函数调用class:open()"的编译器错误.我不能在整个代码中重命名所有名为"class :: open"和"class :: close"的函数,我必须使用open()和close(),因为我正在使用串行端口.

所以我的问题是:我怎么能告诉编译器,我打开哪个?如何在C++中转义或隐藏类的命名空间?

c++ namespaces system-calls

1
推荐指数
1
解决办法
265
查看次数