小编Mac*_*cke的帖子

为什么Qt需要在堆中分配子对象?

class MyWidget : public QWidget { public:
    MyWidget( QWidget *parent=0, const char *name=0 ); };


MyWidget::MyWidget( QWidget *parent, const char *name )
        : QWidget( parent, name ) {
    QPushButton *quit = new QPushButton( "Quit", this, "quit" );
    quit->setGeometry( 62, 40, 75, 30 );
    quit->setFont( QFont( "Times", 18, QFont::Bold ) ); 
} 
Run Code Online (Sandbox Code Playgroud)

在上面的代码quit是在Heap中分配的,因为它是MyWidget的子代,所以它是必需的

为什么Qt需要在堆中分配子对象?

qt

6
推荐指数
2
解决办法
1492
查看次数

如何找到Apache的httpd.exe安装位置?

如何最好地确定 Apache 是否安装在 Windows 计算机上以及安装在何处?

我正在编写一个使用已安装的 apache 的脚本,但设置它自己的配置和服务器根目录,并且我不想对其进行硬编码,也不想让用户显式设置它(除非必要)。

我尝试搜索注册表,但找不到任何有用的东西。

更新那些发布默认路径的人

在我的机器上,它位于 C:/Program Files/Apache Software Foundation/Apache2.2 中。如果我有 Vista 64 位,它可能位于“Program Files (x86)”下。如果计算机没有英文操作系统,那就更糟糕了。

解决方法

我想我必须检查 %PROGRAMFILES% 中 Apache 2.0 或 2.2 的默认路径,然后返回到提示符。很高兴阅读注册表并找出它的确切位置。

最后说明

Apache 不是为“所有人”安装的,而是仅为当前用户安装的。这使得查找变得更加困难,因为没有服务或注册表项/文件夹指向那里。

windows apache

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

如何在调试过程中看到Qt对象的内容?

许多Qt类使用pimpl,因此它们对VS的调试器非常不透明.

当我想检查一些内部Qt状态以查看我的代码是否出错或者我对错误的预期有错误时,这很麻烦.

我正在使用Qt VS加载项(1.1.0),但这似乎没有帮助.

有任何想法吗?

更新

我的autoexp.dat文件充满了Qt的东西,但我仍然无法查看较重的类(QWidget,QTcpSocket等).

我可以看到更简单的类内容,所以下面的autoexp.dat似乎工作,但试图查看QWidget内部不起作用.

更新2

出于某种原因,在阅读评论并查看更多信息后,它确实有效,我可以看到数据.

我不知道平均时间发生了什么(当我刚刚工作并忽略它时),但我之前看到数据确实有问题.

我接受了"正常工作"的答案,因为我无法删除有问题的答案,而且这是最接近的答案.(autoexp-dat只是很好地格式化调试行,使用已经可见的数据,如果一个人挖出来的话)

windows debugging qt visual-studio

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

如何强制Visual Studio 2008使用正确的区域设置保存vcproj文件?

在我的团队中,有些人正在使用瑞典语语言环境(虽然使用英语),而其他人正在使用美国英语.我更喜欢瑞典的日期/时间/数字/货币格式.

vcproj文件中的版本字段格式有一个错误,这意味着它会不断地从逗号更改为点,然后再返回,具体取决于最后编辑文件的人.

差异看起来像这样:

 <?xml version="1.0" encoding="Windows-1252"?>
 <VisualStudioProject
        ProjectType="Visual C++"
-       Version="9.00"
+       Version="9,00"
        Name="TehProject"
        ProjectGUID="{BDFA4CC2-70CA-4B98-AC31-FC233434B56A3}"
Run Code Online (Sandbox Code Playgroud)

任何想法如何解决这个问题?这很小,但它开始让我紧张.:)

locale vcproj visual-studio-2008

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

是否可以将 QWidget 作为 QObject 的子级?

我的主要应用程序对象是 a QObject,它处理 a QSystemTrayIcon、 a QDialog、 aQWindow和一些其他组件。该应用程序主要位于托盘中,带有一些选项对话框等。

现在,我想用来QMetaObject::connectSlotsByName()将这些对象的信号连接到主对象中的插槽。有10-15个,所以手写看起来不太高效、正确、专业、现代等等。

但是,我不能使用 myQObject作为QWidget基于对象的父对象,也不能将对象更改为继承QWidget,因为它们不会显示,因为主对象不可见。

有想法吗?

qt signals-slots qwidget

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

如何使用pdb调试现有C++可执行文件但没有源代码

我在已编译(在调试模式下)C++项目中工作.我有它的exe文件和pdb文件.我可以从命令行运行exe.

我该如何调试项目?(我没有它的.sln文件.)

我在Visual Studio工作,但我在系统中也有一个cygwin.

c++ debugging visual-studio

5
推荐指数
2
解决办法
6571
查看次数

Shellexecute 是否与启动进程共享环境变量

程序 1 使用 SetEnvironment 并调用 ShellExecute 来启动程序 2。程序 2 调用 GetEnvironment 并从中检索值。令人惊讶的是,正如我在 MSDN 中读到的那样,SetEnvironment 是特定于流程的(至少在我的情况下)。ShellExecute 是否在内部调用 CreateProcess(作为子进程),这又允许程序 2 访问在程序 1 中创建和设置的 ENV 变量...我使用 SetEnvironment 来创建和使用与 Windows 用户和系统变量完全不同的 ENV 变量。

windows shellexecute

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

如何在C#/ WPF/WinForms中将WMF渲染到BitMap时启用消除锯齿功能?

这样做时,为什么线路等不会被消除锯齿?

using (var myGraphics = Graphics.FromImage(bitmap))
{
myGraphics.CompositingQuality = CompositingQuality.HighQuality;
myGraphics.SmoothingMode = SmoothingMode.HighQuality;
myGraphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;

myGraphics.Clear(backgroundColor);

myGraphics.EnumerateMetafile(m_metafile, new Point(0, 0), m_metafileDelegate);
}
Run Code Online (Sandbox Code Playgroud)

委托函数如下所示:

private bool MetafileCallback(EmfPlusRecordType recordType, int flags, int dataSize, IntPtr data, PlayRecordCallback callbackData)
{
        byte[] dataArray = null;
        if (data != IntPtr.Zero)
        {
            // Copy the unmanaged record to a managed byte buffer 
            // that can be used by PlayRecord.
            dataArray = new byte[dataSize];
            Marshal.Copy(data, dataArray, 0, dataSize);
        }

        m_metafile.PlayRecord(recordType, flags, dataSize, dataArray);

        return true;
}
Run Code Online (Sandbox Code Playgroud)

我是否需要覆盖特定类型的PlayRecord以获得抗锯齿功能? …

c# system.drawing wmf metafile .emf

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

Qt - 如何创建随窗口缩放并保持纵横比的图像?

我正在尝试在 QT (内部标签)中创建图像,该图像会根据窗口大小的变化而改变大小,但也会保持宽高比。

最好的方法是什么?

qt scale

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

即使某个步骤失败(例如测试),如何使 Azure DevOps 的管道缓存存储其结果?

背景: 管道缓存允许存储文件夹并在下一个构建中重复使用它,前提是某些键、分支等匹配。对于 node_modules、nuget 包和 Git LFS 很有用,也适用于构建

我在管道缓存文档中找不到任何相关内容。

即使构建失败,我也想保存缓存,用于增量构建或 Git LFS 签出,例如以下场景:

  • 新功能分支签入
  • 一次大的重构,因此有很多变化
  • 一些测试失败,因此未存储缓存
  • 修复它们是微不足道的,并且需要小的重新编译,但是整个构建需要重新运行整个管道失败。

该示例列出了如下内容:

- task: Cache@2
  inputs:
    key: 'yarn | "$(Agent.OS)" | yarn.lock'
    restoreKeys: |
       yarn | "$(Agent.OS)"
       yarn
    path: $(YARN_CACHE_FOLDER)
  displayName: Cache Yarn packages
Run Code Online (Sandbox Code Playgroud)

但只有当整个管道成功时它才会缓存。

azure-devops pipeline-cache

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