小编kik*_*iki的帖子

多线程 python 应用程序未在 Visual Studio 中触发断点

我目前正在 Visual Studio 中开发 PyQt 应用程序。调试一直工作得很好,直到我决定通过使用 Qt 线程将内容移动到工作线程来保持我的 UI 响应。

class MainWindow(base, form):

    start_work = QtCore.pyqtSignal()

    def __init__(self, parent=None):
        # Create a seperate thread in which the update information is polled.
        self.thread = QtCore.QThread()
        # Create Worker object and move it to new thread
        self.worker = Worker()
        self.worker.moveToThread(self.thread)
        # connect signal to start work in the extra tread
        self.start_work.connect(self.worker.get_work_done)
        self.thread.start()

    #function emit a signal to start doing the work
    def do_work(self):
        self.startWork.emit()
Run Code Online (Sandbox Code Playgroud)

在我的工作对象上调用的任何函数都通过信号槽连接

class Worker(QtCore.QObject):
    @QtCore.pyqtSlot()
    def get_work_done(self):
        #lets do …
Run Code Online (Sandbox Code Playgroud)

debugging visual-studio-2012 ptvs

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

访问 Visual Studio ImageWatch 插件的 .natvis 文件中的矢量基础数据

问题

与这个问题类似,我尝试将ImageWatch插件用于我自己定义的类型MyImageClass。ImageWatch 是一个 Visual Studio 插件,允许您在调试代码时以图形表示形式查看图像。您可以编写 .natvis 文件来添加对自定义定义类的支持。

struct MyImageClass
{
  uint32_t width;
  uint32_t height;
  std::vector<char> image_data;
}
Run Code Online (Sandbox Code Playgroud)

ImageWatch 插件需要char*图像数据的类型,但是我将数据存储在std::vector<char>. 我的 .natvis 文件非常简单(您可以跳过它,只是为了完整性)

<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> 
  <UIVisualizer ServiceId="{A452AFEA-3DF6-46BB-9177-C0B08F318025}" Id="1"
            MenuName="Add to Image Watch"/> 
  <Type Name="MyImageClass">
    <UIVisualizer ServiceId="{A452AFEA-3DF6-46BB-9177-C0B08F318025}" Id="1" />
  </Type>

  <Type Name="MyImageClass">
    <Expand>
      <Synthetic Name="[type]">
        <DisplayString>UINT8</DisplayString>
      </Synthetic>
      <Item Name="[channels]">1</Item>
      <Item Name="[width]">width</Item>
      <Item Name="[height]">height</Item>
      <Item Name="[planes]">1</Item>
      <Item Name="[data]">image_data</Item>
      <Item Name="[stride]">width</Item>
    </Expand>
  </Type>  
</AutoVisualizer>
Run Code Online (Sandbox Code Playgroud)

但下面这行我很挣扎<Item Name="[data]">image_data</Item>。图像数据分配不起作用,我无法在查看器中看到图像。相反,我收到消息“无效”。显然,这是因为image_datais a …

visual-studio-debugging natvis

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

使用字典列表的一键创建列表

这应该是一个简单的问题,但是由于我对python不太熟悉,所以我还没有完全弄清楚它是如何工作的。我有以下 csv 文件

name        ; type
apple       ; fruit
pear        ; fruit
cucumber    ; vegetable
cherry      ; fruit
green beans ; vegetable
Run Code Online (Sandbox Code Playgroud)

我想要实现的是列出所有不同的类型及其相应的名称,例如:

fruit: apple, pear, cherry
vegetable: cucumber, green beans
Run Code Online (Sandbox Code Playgroud)

使用 csv.DictReader 读取它,我可以生成该 csv 文件的字典列表,保存在变量 alldata 中。

alldata = 
[
  {'name':'apple', 'type':'fruit'},
  {'name':'pear',  'type':'fruit'},
  ...
]
Run Code Online (Sandbox Code Playgroud)

现在我需要来自 alldata 的所有不同类型值的列表

types = ??? #it should contain [fruit, vegetable]
Run Code Online (Sandbox Code Playgroud)

这样我就可以迭代列表并提取与这些类型相对应的我的名字:

foreach type in types
  list_of_names = ??? #extract all values of alldata["type"]==type and put them in a new list
  print type …
Run Code Online (Sandbox Code Playgroud)

python dictionary list

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

MSBuild Exec 命令总是失败

我正在尝试从 MSBuild(VS2015,从文件)执行这个简单的命令.target来生成当前 git 提交的日期:

git show -s --format=%cd --date=format:%d.%m.%Y
Run Code Online (Sandbox Code Playgroud)

所以在 MSBuild 中我尝试过:

<Exec Command="git show -s --format=%25cd --date=format:%25d.%25m.%25Y"  ConsoleToMSBuild="true">
  <Output TaskParameter="ConsoleOutput" PropertyName="BuildDate" />
</Exec>
Run Code Online (Sandbox Code Playgroud)

但它只会产生一个错误:

1>------ Build started: Project: example, Configuration: Release Dll Win32 ------
1>  fatal: invalid --pretty format: d.Y
1>D:\example\gitversion.targets(26,5): error MSB3073: The command "git show -s --format=%cd --date=format:%d.%m.%Y" exited with code 128.
Run Code Online (Sandbox Code Playgroud)

如果我将引号内的命令发布到控制台,它会像魅力一样工作并打印19.12.2016.

我尝试过以下操作:

  • 逃脱也=标志,,:...仍然不起作用

  • 仅使用Command="git show -s --format=%25ci"-> 也会产生错误fatal: invalid --pretty format: ci,但在控制台中工作正常。

  • 用引号引起来 …

msbuild

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