小编Mac*_*Mac的帖子

使用相同的代码生成2种语言的文档

我可以以某种方式为两种不同的语言生成具有相同代码的文档吗?问题是我有一个C API,该API也通过类似于VB的专有语言公开。

因此,C中的公开函数类似于:

int Function (*PointerToObject)
Run Code Online (Sandbox Code Playgroud)

在VB中,它类似于:

int Function (ByVal long PointerToObject)
Run Code Online (Sandbox Code Playgroud)

关于这个相同的问题,我已经打开了另一个线程,但是到那时我对Doxygen一无所知。最近几天,我一直在阅读文档,显然它可以为VB创建文档,但是我必须拥有实际的VB代码才能工作,但我没有。我唯一拥有的是原始的C和同样在C中输出的Swig。

我想到的是一些工具(doxygen,sphinx等),它使我能够从单一来源创建某种多语言文档(不是有效的doxygen,但可以解释这个想法):

/*! \fn int Function(*PointerToObject) 
 *  \brief A simple function.
 *  \Cparam[in] PointerToObject A pointer to the object being used.
 *  \VBparam[in]    ByVal long PointerToObject      A pointer to the object being used.
 *  \return An integer.
 */
Run Code Online (Sandbox Code Playgroud)

如果能以某种方式将其集成到Swig中,那将是很棒的,因为它是Swig来标识正确的VB类型,但是我想我可能会问太多。

这有点复杂,如果我不太清楚,请发表评论,我将尝试进一步解释。

c vb6 swig doxygen python-sphinx

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

为什么git revert在这个例子中失败了?

一位同事正在玩git revert今天他结束了一个奇怪的情况:

git init
echo 1 > file.txt
git add file.txt
git commit -m "Commit 1"
# Say this generates hash aaa

cat file
1

echo 2 >> file.txt
git add file.txt
git commit -m "Commit 2"
# Say this generates hash bbb

cat file
1
2

echo 3 >> file.txt
git add file.txt
git commit -m "Commit 3"
# Say this generates hash ccc

cat file
1
2
3

git revert bbb
#line above does not work
Run Code Online (Sandbox Code Playgroud)

恢复工作不起作用,并最终采取樱桃挑选的情况.我期待以下结果:

cat …
Run Code Online (Sandbox Code Playgroud)

git

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

表格列的 CSS 选择器

我对 CSS 没有太多经验,但我正在尝试帮助朋友使用 CSS 格式化表格。现在我在尝试格式化表格宽度时遇到了困难,这是表格的一个例子:https : //form.jotform.com/53306318713148

如果我想更改所有字段的输入,我可以

table input {
width: 100px;
}
Run Code Online (Sandbox Code Playgroud)

但是现在我们希望每一列都有不同的输入大小,所以在阅读了 CSS 选择器之后,我尝试了以下一些内容:

#cid_1 [id$=_1] {
width: 100px;
}
Run Code Online (Sandbox Code Playgroud)

我的想法是我会选择 ID 为 cid_1 的元素和该元素的子元素以 ID _1 结尾,但这似乎不起作用。似乎最元素的解决方案是使用某种 :nth-child()。可能是一个愚蠢的问题,但我希望有人能告诉我如何做到这一点。

html css

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

如何将变量传递给cpack?

我有一个 cmake 项目,其中一个安装目标是文件集合。此文件根据配置(发布、调试...)而变化。我希望能够像这样安装文件:

install(DIRECTORY $<TARGET_FILE_DIR:tgt>
    DESTINATION bin
    COMPONENT files)
Run Code Online (Sandbox Code Playgroud)

但是 cmake 不支持。生成器变量不适用于 DIRECTORY。所以我想知道是否有办法将目录保存在某处。缓存或文件,然后将其加载到 cpack 中。

所以我想问题是如何将变量从 cmake 传递给 cpack?

cmake cpack

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

为什么标准让我免费存储分配没有析构函数的类?

如果你有一个没有析构函数的类:

struct A {
    ~A() = delete;
};
Run Code Online (Sandbox Code Playgroud)

该标准不允许我"本地"分配该类的实例:

int main()
{
    A a; //error
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我在免费商店分配它似乎没关系:

int main()
{
    a *p = new A();
}
Run Code Online (Sandbox Code Playgroud)

只要我不在该指针上调用delete:

int main()
{
    a *p = new A();
    delete p; //error
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,如果我在免费商店分配它,为什么标准让我有一个没有析构函数的类?我猜有一些用例吗?但到底是什么?

c++ c++11 c++14

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

如何在tkinter中创建模态对话框?

我有一个运行一些嵌入式Python脚本的MFC应用程序.我试图使这个嵌入式脚本创建模态的对话框之一,但我没有取得多大成功.

有人能指出我制作模态对话的方法吗?我是否需要使用Windows函数或仅使用Tk或Python函数就足够了?

对于我用Google搜索的内容,看起来以下功能组合应该具有魔力,但它们似乎不像我期望的那样工作:

focus_set()

grab_set()

transient(parent)
Run Code Online (Sandbox Code Playgroud)

python mfc tkinter python-3.x

4
推荐指数
2
解决办法
8123
查看次数

返回类的类方法

我正在玩python的3.5类型提示.我想知道如何键入提示类方法的返回类型.

这就是我的想法:

>>> class A():
    @classmethod
    def a(cls) -> A:
        pass

Traceback (most recent call last):
  File "<pyshell#24>", line 1, in <module>
    class A():
  File "<pyshell#24>", line 3, in A
    def a(cls) -> A:
NameError: name 'A' is not defined
Run Code Online (Sandbox Code Playgroud)

显然它不起作用.我想一种方法是做某种"前向声明",如下所示:

>>> class A():
    pass

>>> class A():
    @classmethod
    def a(cls) -> A:
        pass
Run Code Online (Sandbox Code Playgroud)

但这并不觉得"pythonic".人们通常如何解决这个问题?

python type-hinting python-3.5

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

如何在 QT 中加入 url

Python 具有urllib.parse.urljoin的真正手动功能,它处理连接 url,示例:

合并网址:

>>> urllib.parse.urljoin('https://something.a.com/api/v3/', 'some/end/point')
'https://something.a.com/api/v3/some/end/point'
Run Code Online (Sandbox Code Playgroud)

我正在查看QT 文档,但在那里找不到类似的内容。人们如何处理这两种情况?我想我可以用 QStrings 手动合并东西,但这似乎有点麻烦。

c++ qt qt5

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

设置/ bin/sh以外的Linux shell有问题吗?

我的公司开始增加我们的Linux支持,我们的一些shell脚本开始变得更加复杂.今天我们用shebang作为

#! /bin/sh
Run Code Online (Sandbox Code Playgroud)

但是我们遇到像Ubuntu这样的发行版的问题,例如sh指向破折号和一些更具异国情调的发行版.

我的问题是,例如,将shebang改为bash的风险是什么?也许更好的问题是,如果这些天可以有一个没有bash的发行版?

linux bash shell sh dash-shell

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

使用不同文件夹上的文件来刷新AUTOMOC

我有一个简单的CMake项目:

proj (project folder)
??? a.h
??? a.cpp
??? CMakeLists.txt
Run Code Online (Sandbox Code Playgroud)

的CMakeLists.txt:

cmake_minimum_required(VERSION 3.2)

set(CMAKE_VERBOSE_MAKEFILE ON)

set(CMAKE_AUTOMOC ON)

project(proj)

set( proj_SOURCE
    a.cpp
)

find_package(Qt5Core)

set( proj_LIBRARIES
    Qt5::Core
)

add_library(proj SHARED ${proj_SOURCE})
target_link_libraries(proj ${proj_LIBRARIES})
Run Code Online (Sandbox Code Playgroud)

啊:

#pragma once

#include <QObject>

class A : public QObject
{
    Q_OBJECT
public:
    explicit A(QObject *parent = 0);
};
Run Code Online (Sandbox Code Playgroud)

a.cpp:

#include "a.h"

A::A(QObject *parent) : QObject(parent)
{
}
Run Code Online (Sandbox Code Playgroud)

一切都很好.接下来,我尝试将头文件和源文件移动到不同的文件夹中,如下所示:

proj (project folder)
??? include
?   ??? a.h
??? src
?   ??? a.cpp
??? CMakeLists.txt
Run Code Online (Sandbox Code Playgroud)

并尝试了以下调用的不同配置:

include_directories("include")
include_directories("src")

set( …
Run Code Online (Sandbox Code Playgroud)

c++ qt cmake moc

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

标签 统计

c++ ×3

cmake ×2

python ×2

qt ×2

bash ×1

c ×1

c++11 ×1

c++14 ×1

cpack ×1

css ×1

dash-shell ×1

doxygen ×1

git ×1

html ×1

linux ×1

mfc ×1

moc ×1

python-3.5 ×1

python-3.x ×1

python-sphinx ×1

qt5 ×1

sh ×1

shell ×1

swig ×1

tkinter ×1

type-hinting ×1

vb6 ×1