小编Nat*_*man的帖子

我在哪里可以宣传一个开源项目?

我已经开始了一个开源项目,并想知道如何最好地邀请人们参与该项目.SourceForge很棒,但不符合项目的需要.有任何想法吗?

open-source list project

33
推荐指数
3
解决办法
4557
查看次数

如何获得任务栏的位置和大小?

我想知道如何获得任务栏占据的矩形(底部,顶部,左侧和右侧).我如何在C#中执行此操作?

c#

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

有没有一种简单的方法可以从Qt中的QString中删除HTML?

我有一个带有一些HTML的QString ...是否有一种简单的方法可以从中删除HTML?我基本上只想要实际的文本内容.

<i>Test:</i><img src="blah.png" /><br> A test case
Run Code Online (Sandbox Code Playgroud)

会成为:

Test: A test case
Run Code Online (Sandbox Code Playgroud)

我很想知道Qt是否有字符串函数或实用程序.

html qt strip

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

如何修改传递给自定义CMake目标的环境变量?

也许我错过了一些明显的东西,但我似乎无法弄清楚如何显式设置可以通过启动的进程看到的环境变量add_custom_target().

我尝试了以下方法:

set(ENV{PATH} "C:/Some/Path;$ENV{PATH}")
add_custom_target(newtarget somecommand)
Run Code Online (Sandbox Code Playgroud)

不幸的是,%PATH%环境变量似乎没有变化somecommand.(我已经设置了一个Gist,可以在这里重现问题.)

我究竟做错了什么?

cmake environment-variables

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

如何将DIV锚定到页面底部?

我有一个固定宽度的DIV,我想保留在浏览器视口的底部.

不幸的是,我不知道我甚至会开始尝试实现这一点.

显然,要做的第一件事就是设定positionfixed.但除此之外......没有任何线索.

html css alignment

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

如何从QProcess获取STDOUT?

我以为我将使用以下代码从QProcess获取输出:

// Start the process
process.start(tr("php-cgi www/test.php"),QIODevice::ReadWrite);

// Wait for it to start
if(!process.waitForStarted())
    return 0;

// Continue reading the data until EOF reached
QByteArray data;

while(process.waitForReadyRead())
    data.append(process.readAll());

// Output the data
qDebug(data.data());
qDebug("Done!");
Run Code Online (Sandbox Code Playgroud)

我期待的是看到程序的输出打印到调试控制台,但我看到的只有:

完成!

我知道:

  • 程序启动正常,因为打印结束时的消息.
  • 该程序确实打印输出,因为在终端中运行完全相同的命令会产生一个长串的文本.

我在这做错了什么?

qt stdout process qprocess

24
推荐指数
2
解决办法
3万
查看次数

如何在Makefile中使用变量列表作为目标?

假设我正在处理一个makefile,我在顶部有以下变量声明:

FILES = file1.cpp file2.cpp file3.cpp
Run Code Online (Sandbox Code Playgroud)

现在假设我想用特殊命令编译每一个而不指定每个目标,如下所示:

file1.o : file1.cpp
    custom_command file1.cpp
file2.o : file2.cpp
    custom_command file2.cpp
file3.o : file3.cpp
    custom_command file3.cpp
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来使用$(FILES)我上面声明的变量?

就像是:

$(FILES:.cpp=.o) : $(FILES)
    custom_command $(FILES)
Run Code Online (Sandbox Code Playgroud)

...只需要为$(FILES)变量中的每个文件执行此操作.

arrays variables makefile target

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

如何在Qt中递归创建目录?

是否存在一个给定绝对路径的函数将尝试在路径中创建不存在的所有目录?

directory recursion qt

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

如何正确使用sync.Cond?

我无法弄清楚如何正确使用sync.Cond.据我所知,在锁定Locker和调用条件的Wait方法之间存在竞争条件.此示例在主goroutine中的两条线之间添加了一个人工延迟来模拟竞争条件:

package main

import (
    "sync"
    "time"
)

func main() {
    m := sync.Mutex{}
    c := sync.NewCond(&m)
    go func() {
        time.Sleep(1 * time.Second)
        c.Broadcast()
    }()
    m.Lock()
    time.Sleep(2 * time.Second)
    c.Wait()
}
Run Code Online (Sandbox Code Playgroud)

[ 在游乐场跑步 ]

这会立即引起恐慌:

fatal error: all goroutines are asleep - deadlock!

goroutine 1 [semacquire]:
sync.runtime_Syncsemacquire(0x10330208, 0x1)
    /usr/local/go/src/runtime/sema.go:241 +0x2e0
sync.(*Cond).Wait(0x10330200, 0x0)
    /usr/local/go/src/sync/cond.go:63 +0xe0
main.main()
    /tmp/sandbox301865429/main.go:17 +0x1a0

我究竟做错了什么?我该如何避免这种明显的竞争状况?我应该使用更好的同步构造吗?


编辑:我意识到我应该更好地解释我想在这里解决的问题.我有一个长期运行的goroutine,下载一个大文件和许多其他goroutine,当它们可用时需要访问HTTP标头.这个问题比听起来更难.

我不能使用频道,因为只有一个goroutine会收到该值.而其他一些goroutine将在它们已经可用之后很久就试图检索它们.

下载程序goroutine可以简单地将HTTP标头存储在变量中,并使用互斥锁来保护对它们的访问.但是,这并没有为其他goroutines提供"等待"它们可用的方法.

我曾经想过,一个sync.Mutex人和一个人sync.Cond都可以完成这个目标,但似乎这是不可能的.

synchronization go race-condition

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

如何为Jellybean创建一个可用的AVD(API 17)?

我尝试使用以下过程在Kubuntu 17.04中为Jellybean(API 17)创建AVD:

  1. 从Android Studio启动AVD Manager

  2. 单击"创建虚拟设备"按钮:

    在此输入图像描述

  3. 选择Nexus 4硬件配置文件:

    在此输入图像描述

  4. 点击下一步"

  5. 单击"x86 Images"选项卡,然后选择"Jelly Bean/17/x86/Android 4.2(使用Google API)"图像:

    在此输入图像描述

  6. 点击下一步"

  7. 将设置保留为默认值:

    在此输入图像描述

  8. 点击"完成"

现在,由于Ubuntu 17.04(及其衍生产品)的一个不幸问题,单击其条目旁边的播放按钮无法直接启动模拟器.(单击它什么都不做.)相反,我必须从终端启动模拟器:

$ cd ~/Android/Sdk/tools
$ LD_PRELOAD='/usr/$LIB/libstdc++.so.6' ./emulator -avd Nexus_4_API_17
Run Code Online (Sandbox Code Playgroud)

模拟器启动并出现主屏幕:

在此输入图像描述

然而,与它的交互立即显示存在问题.相机显示错误:

在此输入图像描述

单击"设置"应用中的"存储"会导致"设置"应用崩溃.

我做错了什么,如何解决这个问题?


编辑:我点击"显示高级设置"并确认确实要创建一张SD卡:

在此输入图像描述

我也确认该文件~/.android/avd/Nexus_4_API_17.avd/sdcard.img.qcow2存在.


编辑:我按照相同的步骤创建了一个Kit Kat AVD(使用Nexus 5硬件配置文件),但问题并不存在.SD卡按预期工作.


编辑:我尝试使用mksdcard手动创建SD卡图像:

mksdcard -l TEST 100M sdcard.img
Run Code Online (Sandbox Code Playgroud)

...然后将其直接传递给模拟器:

emulator -sdcard sdcard.img -avd [...]
Run Code Online (Sandbox Code Playgroud)

......但这并没有什么区别.

但是,在设备上打开根终端(使用adb shell)并运行mountdf命令后,我发现了一些有趣的东西:

# mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 …

android sd-card android-virtual-device android-emulator

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