小编spi*_*ick的帖子

从PySide访问d指针

我正在尝试使用PySide创建一些自定义小部件,这将扩展现有的小部件.是否可以从PySide访问存储在"d指针"中的数据.例如,我想继承QLabel.我需要编写一个新的paintEvent函数,但是,我需要复制一些使用来自"d指针"的数据的paintEvent代码,例如d-> control-> document(),据我所知,QLabel没有成员函数来检索它.这可能是纯粹用Python做的,还是我必须创建一个c ++子类并为它创建新的Python绑定?

编辑以响应@ f.rodrigues的评论(因为我的回复太长而无法发表评论)

我需要做的主要事情是创建一个垂直标签,文本旋转90度.StackOverflow(以及Web的其余部分)有很多关于如何通过继承QLabel并覆盖paintEvent函数来创建它的示例.这里的问题是现在调用我的新类的paintEvent,而不是QLabel绘制事件.因此,我想在子类中拥有的QLabel.paintEvent中的任何功能都必须在子类中重写.如果你看一下QLabel :: paintEvent的源代码,可以采用一些不使用d指针就不可能的代码路径.如果我正在编写一个c ++程序,答案就是简单地使用子类'paintEvent中的d指针.

为了我的迫切需要,我能够在不使用d指针的情况下得到我需要的东西.我想知道我的问题的答案,以防我需要修改我的VerticalLabel类或需要子类化不同的Qt类.

python qt pyside

6
推荐指数
0
解决办法
159
查看次数

将磁贴添加到MFC应用程序

我有一个C++ MFC应用程序,它有一堆在.rc文件中定义的对话框.我需要在应用程序中添加一个磁贴以将其固定到开始菜单,因为Windows从图标创建的默认"磁贴"看起来不太好.重写整个应用程序以使用XAML而不是.rc文件现在不是一个选项.磁贴不需要是交互式的,只需显示一个更好看的图片,而不仅仅是打开小图标.

有没有办法使用.rc文件将磁贴添加到MFC应用程序?

如果没有,我的另一个想法是创建一个使用XAML创建一个tile的包装器应用程序,而包装器应用程序唯一要做的就是启动MFC应用程序.有人有更好的解决方案吗?

我正在使用Visual Studio 2015.我正在使用的.ico文件中包含768x768,512x512,256x256,150x150,48x48,32x32和16x16版本的图像.

编辑

关于我究竟需要什么,有些困惑.这是一个带注释的屏幕截图,希望能清楚地显示问题. 带注释的屏幕截图显示,带有小图标的默认图块

另外一个澄清,我认为这没有任何区别,但我认为我只是为了安全而添加它.该程序不需要在Windows 8/8.1上运行,只需要在Windows7和Windows10上运行

c++ wpf mfc ico visual-c++

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

GetTempFileName似乎在Windows 10上被破坏

我有一个使用的MFC程序 GetTempFileName.在Windows 7上它可以正常工作,但是当我将相同的代码添加到Windows 10时,它会产生垃圾.

TCHAR temp_dir[1024];
GetTempPath(1024,temp_dir);
TCHAR temp_file[1024];
GetTempFileName("C:\\","udb",0,temp_file);
std::cout << "Temp DB Path: " << temp_file << std::endl;
Run Code Online (Sandbox Code Playgroud)

在Windows7上:

Temp DB Path: C:\udb2145.tmp
Run Code Online (Sandbox Code Playgroud)

在Windows10上:

Temp DB Path: o?
Run Code Online (Sandbox Code Playgroud)

我在代码中做错了吗?或者我应该使用不同的功能?

c++ winapi windows-7 windows-10

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

标签 统计

c++ ×2

ico ×1

mfc ×1

pyside ×1

python ×1

qt ×1

visual-c++ ×1

winapi ×1

windows-10 ×1

windows-7 ×1

wpf ×1