小编Zio*_*yte的帖子

如何定义 GitLab CI 作业以依赖于一个或另一个先前作业?

我想定义一个管道来编译、部署到目标和测试我的项目。

这应该以两种不同的方式发生:每次提交时增量(希望快速)构建和安排在晚上的完整构建。

以下.gitlab-ci.yml所有作业均标记为“手动”以进行测试。

stages:
    - build
    - deploy
    - test

variables:
    BUILD_ARTIFACTS_DIR: "artifacts"

build-incremental:
    timeout: 5h 
    stage: build
    script:
        - echo "Building"
        - ./ci/do-prep
        - echo "done."
    artifacts:
        paths:
            - $BUILD_ARTIFACTS_DIR/
    variables:
        BUILD_TOP_DIR: "/workspace/builds"
    tags:
        - yocto
    when: manual

build-nightly:
    timeout: 5h
    stage: build
    script:
        - echo "Building"
        - ./ci/do-prep
        - echo "done."
    artifacts:
        paths:
            - $BUILD_ARTIFACTS_DIR/
    tags:
        - yocto
    when: manual

deploy:
    stage: deploy
    script:
        - echo "Deploying..."
        - ./ci/do-deploy
        - echo "done."
    tags:
        - yocto
    dependencies: …
Run Code Online (Sandbox Code Playgroud)

gitlab-ci

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

在JavaFX 8中,我可以从String中提供样式表吗?

是否可以将整个样式表包装在字符串中并将其应用于某个节点?用例是为PseudoClass添加特定(非变化)行为.我知道我可以使用pane.getStylesheets().add(getClass().getResource("mycss.css").toExternalForm());,但我想知道是否有某种方法可以直接将其嵌入源代码中; 一些事情:

pane.getStylesheets().add(
    ".button:ok { -fx-background-color: green; }\n"+
    ".button:ko { -fx-background-color: red; }");
Run Code Online (Sandbox Code Playgroud)

css resources stylesheet embedded-resource javafx-8

8
推荐指数
2
解决办法
3618
查看次数

为什么不能指定我<?将Type>扩展为<Type>?

以下陈述:

URLClassLoader ucl = (URLClassLoader) ClassLoader.getSystemClassLoader();
Class<URLClassLoader> uclc = ucl.getClass();
Run Code Online (Sandbox Code Playgroud)

失败并出错:

Type mismatch: cannot convert from Class<capture#2-of ? extends URLClassLoader> to Class<URLClassLoader>
Run Code Online (Sandbox Code Playgroud)

我为什么需要演员?

我发现了几个帖子解释了为什么你不能反过来(将T分配给a),但那种(有点)是显而易见的.

注意:我在eclipse Luna下编码,所以我不知道它是否是Luna Quirk,或者是否有一些我在仿制药中真的不理解的东西.

java generics extends type-conversion bounded-wildcard

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

Doxygen:如何包含 Markdown 页面来记录组

我有一个相当复杂的项目,我想使用 doxygen 来记录它。

我在记录代码方面没有任何问题,并且我还设法使用自定义README.md文件加上USE_MDFILE_AS_MAINPAGE = README.mdDoxyfile 中的“”指令来创建一个漂亮的首页。

我定义了几个组 ( @defgroup),它们在我的文档中显示为“模块”。

我想在每个组中添加一个“主页”,除了惯用的函数/变量/类型文档之外,还提供一般信息。

我尝试添加自定义MODULENAME.md文件以及@includedoc MODULENAME.md组定义中的匹配条目,它似乎有效(我看到几行,例如:“ Generating docs for page md_mcu_noitr_coro_README...”),但我找不到页面是否链接以及在哪里链接(我希望在“详细说明”中看到它) " 对于模块,如果我将一些文档内嵌在我放置 " @includedoc" 指令的位置,就会发生这种情况。

我的一个模块的片段是:

/**
 * @file coro.h
 * @brief definition of coroutine implementing functions.
 *
 * @date: Feb 8, 2018
 * @author: myself
 *
 * @defgroup coro "Coroutine implementation in plain 'C'."
 *
 * @includedoc mcu_noitr/coro/README.md
 * @{
 *
 */
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

注意:还有一点令人惊讶的是,我需要将整个路径放在我所在的位置Doxyfile,否则 doxygen 不会找到它,即使它位于包含@includedoc …

doxygen

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

JavaFX 2 TitledPane 图形扩展到全尺寸

我正在尝试向通用 TitledPane 添加自定义工具栏。我的代码似乎可以工作(下面是最小示例),但是我在布局方面遇到了问题。具体来说:我正在使用 setGraphic() 添加我的工具栏,但这似乎有一个固定的宽度,而我希望它扩展,这样我就可以在保持标题在左侧的同时向右刷新按钮。

(我不能发布图片,所以我将恢复为 ASCII 艺术)这是下面代码的实际结果:

+------------------------------------+
| > Node 1 [a][b][c][d]              |
+------------------------------------+
| > Node                             |
+------------------------------------+
Run Code Online (Sandbox Code Playgroud)

虽然我想得到类似的东西:

+------------------------------------+
| > Node 1              [a][b][c][d] |
+------------------------------------+
| > Node                             |
+------------------------------------+
Run Code Online (Sandbox Code Playgroud)

我可以显式地伪造结果设置 BorderPane 宽度,但它不会跟随调整大小!


这里开始代码:

import java.net.URL;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Accordion;
import javafx.scene.control.Button;
import javafx.scene.control.ContentDisplay;
import javafx.scene.control.TitledPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class Test extends Application {

private Node loadMinitool(String title) {
    try { …
Run Code Online (Sandbox Code Playgroud)

resize titlebar javafx-2

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

从 QValidator 获取视觉反馈

我正在尝试使用QValidator后代(实际上在 PyQt5 中,但这无关紧要)来验证一系列行编辑。

一小段摘录是:

class IPv4(QWidget):
    def __init__(self):
        super(IPv4, self).__init__()
        uic.loadUi('ipv4.ui', self)
        self.address.inputMask = ''
        rx = QRegularExpression(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}')
        self.address.setValidator(QRegularExpressionValidator(rx, self.address))
        self.netmask.setValidator(QRegularExpressionValidator(rx, self.netmask))
        self.gateway.setValidator(QRegularExpressionValidator(rx, self.gateway))
        self.broadcast.setValidator(QRegularExpressionValidator(rx, self.broadcast))
        self.dns1.setValidator(QRegularExpressionValidator(rx, self.dns1))
        self.dns2.setValidator(QRegularExpressionValidator(rx, self.dns2))
        self.on_dhcp_clicked(self.dhcp.isChecked())
Run Code Online (Sandbox Code Playgroud)

这如宣传的那样有效,但用户没有得到任何反馈,因为尝试输入“错误”字符只会丢弃它们。

除了挂钩QLineEdit.textChanged信号并“手动”进行验证(即:设置验证器,否则错误text不会改变并且不会发出信号)之外,我没有找到任何提供反馈的方法。首选的反馈是更改行编辑的边框颜色。

这在某种程度上违背了验证器本身的目的。似乎我错过了一些东西,因为我看不到如何触发反馈QValidator.

处理这个问题的“标准方法”是什么?

python qt pyqt pyqt5 qvalidator

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

如何在 QStatusBar 中获取彩色瞬时消息?

我需要对在 Qt5.5 应用程序的状态栏中闪烁的消息进行颜色编码。

我正在像这样使用 showMessage:

ui->statusBar->showMessage("My Message", 5000);
Run Code Online (Sandbox Code Playgroud)

我想更改单个消息的颜色。我发现除了子类化 QStatusBar 和覆盖 showMessage() 之外,别无他法。我真的需要这种侵入性的改变吗?

我尝试使用富文本:

ui->statusBar->showMessage(QString("<html><head/><body><p style=\"color:red\">%1</p></body></html>").arg("My Message"));
Run Code Online (Sandbox Code Playgroud)

但它似乎没有被识别(打印标签)。

更改调色板或设置样式表将不限于当前消息。

我还能尝试什么?

qt message colors qstatusbar

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

显然在包含的文件中不知道NULL

我面临一个奇怪的问题:

我有一个主要的开头:

#include <stdlib.h>     /* this defines NULL */
#include <stdio.h>      /* ditto */
#include <fcntl.h>
#include <ctype.h>      /* ditto */
#include <unistd.h>     /* ditto */

#include <linux/input.h>

#include <string.h>     /* ditto */
#include <sys/ioctl.h>

#include "parse.h"
Run Code Online (Sandbox Code Playgroud)

...但在包含的文件中:

#define NULL ((void*)0)  /* I need this! */

struct parse_key {
    char *name;
    unsigned int value;
} keynames[] = {
    {"KEY_RESERVED", 0},
    {"KEY_ESC", 1},
    {"KEY_1", 2},
    {"KEY_2", 3},
    ...
    {"KEY_MAX", 0x2ff},
    {NULL, 0}
};
Run Code Online (Sandbox Code Playgroud)

我需要重新定义NULL,否则我得到错误:"错误:'NULL'在这里未声明(不在函数中)".

注:NULL 主文件中定义; 如果我尝试 …

c gcc c-preprocessor

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

JavaFX中是否有可更改的ListProperty?

ListPropertyJavaFX中是否有可更改?我需要一个ListProperty支持add()remove()方法,但我找不到一个. SimpleListProperty会扔UnsupportedOperationException.

我发现只是使用初始化程序来设置内容,但这不是我需要的.我需要从那里开始一个空的Property end buld.

我不敢相信没有这样的事情; 不知怎的,我一定是个盲人.有人能指出我正确的方向吗?

java javafx add listproperty

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

使用“unique_ptr”创建“map”

我最初在创建类时遇到问题map,在一些帮助下我意识到我实际上需要一个map<string, unique_ptr<myclass>>.

更准确地说:

  • 我有很多具有共同祖先的专门课程。
  • 专门化的类实际上是从同一个模板专门化的。
  • 我拥有std::map<std::string, unique_ptr<ancestor>>我的实例的所有权(我希望如此)。
  • 我需要所有权,因为创建实例的函数与使用它们的地方位于完全不同的代码部分。
  • 如果有用:我在初始化时创建map,然后仅在运行时引用它;出于所有实际目的,初始化它后(这是一个复杂的事情,涉及读取配置文件),它可能会变成 const.

我需要实现的一个最小的例子是:

#include <iostream>
#include <string>
#include <memory>
#include <map>

class generic {
    std::string _name;

public:
    generic(std::string name) : _name(name) {}
    virtual ~generic() = default;

    virtual std::string name() { return _name; }
    virtual std::string value() { return "no value in generic"; }
};

template <class T> class special : public generic {
    T _value;
public:
    special(std::string name, T value) : generic(name), _value(value) …
Run Code Online (Sandbox Code Playgroud)

c++ dictionary unique-ptr

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