小编Tac*_*lff的帖子

Qt设计师; 难以将小部件放在正确的父级中

使用Qt Designer我已经相互制作了几个QFrame,每个都有一个水平布局.他们的样式表预测他们应该没有边距或填充.这意味着在Qt Designers视图和最终结果中,QFrame之间没有空间.

使用拖放我可以将窗口小部件放入窗口,它会显示一条蓝色线条(放置在布局中).但是,无法将另一个QFrame添加到我看不到的QFrame父级(因此可以继续).右侧面板中还有一棵树,但放在父级上会让它自动进入其中一个孩子......

例如,我有这个设置:

QMainWindow
- QWidget
  - QFrame (parent)
    - QFrame (child)
    - QFrame (child)

无论我尝试什么,添加一个新框架给了我:

QMainWindow
- QWidget
  - QFrame (parent)
    - QFrame (child)
    - QFrame (child)
    - QFrame (new child)

但我真的想要:

QMainWindow
- QWidget
  - QFrame (parent)
    - QFrame (child)
    - QFrame (child)
  - QFrame (new parent)

是否有任何我没有发现的功能来准确放置新的小部件?

qt qt-designer

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

Digital Mars D编译器; 获取ASM输出

我正在阅读Andrei Alexandrescu关于D编程语言的书.他是一位优秀的作家,在解释D语言方面做得非常出色.然而,当我无法想象ASM输出或某些关键字的后果(例如输入,输出等或其他结构)时,我发现某些结构难以理解.即使我的ASM非常糟糕而且我从不使用它,但是能够理解某些关键字如何对计算机和正在进行的工作有所帮助,这对我有很大帮助.

DMD编译器有许多有趣的功能(代码覆盖,生成接口(头文件),生成文档,分析,...)但我还没有看到转换输出ASM代码.编译器会生成.obj文件,并从阅读以下链接:http://www.digitalmars.com/ctg/obj2asm.html我怀疑我需要一个工具来手动转换目标文件.我更喜欢编译器开关,有吗?

在该页面的底部,我链接到一个页面,我可以在其中支付包含该工具的产品.来自GNU背景,我非常不满意.这仅适用于C/C++,还是适用于D编译器?

有没有其他方法可以将这些.obj文件转换为可读的ASM代码,还是必须使用其他D编译器(如GDC或LDC)来获取ASM输出?我不愿意.DMD由创始人自己创建,我敢肯定他正确地实现了大部分功能/大部分优化.

那么,我该如何看一看ASM代码呢?

谢谢.

compiler-construction d dmd

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

从Windows cmd调用MSYS bash

我在Windows 7上使用GCC(使用TDM的构建).我安装了MSYS,可以使用makefile 执行Make和编译.但是,每次启动MSYS Bash shell,导航到项目目录并运行都很繁琐make.

我想要的是自动化这个过程.我更喜欢在Windows中有一个批处理文件,或类似的东西,然后我从中调用MSYS Bash shell.它应该导航到批处理文件所在的目录并调用make.

这可能吗?我可以从cmd向MSYS Bash发送命令(如导航/调用make)吗?或者我可以让MSYS Bash运行"Bash脚本",它将命令设置为像批处理脚本一样执行?

PS:这类似于Stack Overflow问题从带有参数的cmd.exe执行MSYS.

c c++ gcc makefile msys

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

为现有C库编写D(D2)绑定

我真的很想进入D,但缺乏良好的图书馆支持真的会阻碍我.因此,我想为我想要使用的现有C库创建一些D绑定.我从未做过任何约束,但看起来也不太难.

我打算为D2做这个(不是特别是D1,但如果它可以用于两者,甚至更好).我正在使用DMD2编译器.

  • 应该使用哪些约定(我注意到版本语句,别名和常规常量/函数定义)?
  • 绑定到静态库(因此链接到)或动态库之间的区别是什么?绑定有什么区别吗?
  • 对于绑定静态库,DMD编译器似乎不接受.a或.o文件,仅接受.lib和.obj.这是否意味着必须使用DMC编译器(而不是GCC编译器)编译库,然后通过DMD编译器进行链接?

如果某人有一个非常简短的例子来说明如何完成一个绑定,我会非常满意.目前我可以使用DMC编译C代码,链接目标文件并从D中的C代码运行函数.但是,大多数C库只需要包含头文件并且需要在C中链接.我不确定如何制作适用于那个的绑定......

谢谢!

c binding d dmd

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

使用AsyncTask和Jsoup发布APK时出错

我收到这个错误:

03-04 09:55:55.915: W/dalvikvm(20171): Exception Ljava/lang/NullPointerException; thrown while initializing La/a/b/k;
03-04 09:55:55.915: W/dalvikvm(20171): Exception Ljava/lang/ExceptionInInitializerError; thrown while initializing La/a/b/l;
03-04 09:55:55.925: W/dalvikvm(20171): threadid=13: thread exiting with uncaught exception (group=0x40ab3300)
03-04 09:55:55.945: E/AndroidRuntime(20171): FATAL EXCEPTION: AsyncTask #1
03-04 09:55:55.945: E/AndroidRuntime(20171): java.lang.RuntimeException: An error occured while executing doInBackground()
03-04 09:55:55.945: E/AndroidRuntime(20171):    at android.os.AsyncTask$3.done(AsyncTask.java:299)
03-04 09:55:55.945: E/AndroidRuntime(20171):    at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
03-04 09:55:55.945: E/AndroidRuntime(20171):    at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
03-04 09:55:55.945: E/AndroidRuntime(20171):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
03-04 09:55:55.945: E/AndroidRuntime(20171):    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
03-04 09:55:55.945: E/AndroidRuntime(20171):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
03-04 09:55:55.945: E/AndroidRuntime(20171):    at …
Run Code Online (Sandbox Code Playgroud)

android exception apk jsoup android-asynctask

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

使用已知的用户名和密码登录Facebook API

我想构建一个脚本,我用PHP脚本自动登录,更新状态或w/e然后注销.如果我得到一个令人讨厌的弹出窗口,我需要登录并允许"应用程序",使用Graph API或FQL会很棒.我不想要这个,我知道我自己的用户名和密码,只是希望它立即登录,做它的东西并注销.

这可以通过Facebook API实现吗?我真的不喜欢刮FB但他们不会让我选择多少= /

所以我想立即通过PHP脚本登录到Facebook.

谢谢!

php facebook

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

QtCreator:大量的流浪错误

项目运行良好,运行良好,编译良好。直到一些看似随机的时间,它才停止变好。

目前,我遇到了200个流浪错误:

./new:4: error: stray '\376' in program
./new:4: error: stray '\377' in program
./new:5: error: stray '\376' in program
./new:5: error: stray '\377' in program
Run Code Online (Sandbox Code Playgroud)

通过阅读其他文章,似乎我的代码中有一些看不见的坏字符。因此我清空了正在处理的整个文件,但是没有运气。无论我做什么,此错误仍然存​​在。

同样,在编译main.cpp(首先执行)时,它首先包含#include,这是“ from'file'”消息链的开始。这意味着它还没有真正解析main.cpp的大部分内容,但是却因为读取内部Qt文件而感到厌烦?

我完全在黑暗中凝视着,这可能是什么,我将如何解决?

谢谢!

我正在使用Qt 4.7.2,GCC 4.5.0和Win7。

qt gcc qt-creator

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

D任务池等待直到完成所有任务

这与我之前的问题有关:D并发写入缓冲区

假设您有一段由2个连续代码块A和B组成的代码,其中B依赖于A.这在编程中非常常见.A和B都包含一个循环,每个迭代可以并行运行:

double[] array = [ ... ]; // has N elements

// A
for (int i = 0; i < N; i++)
{
    job1(array[i]); // new task
}

// wait for all job1's to be done

// B
for (int i = 0; i < N; i++)
{
    job2(array[i]); // new task
}
Run Code Online (Sandbox Code Playgroud)

B只能在A完成时执行.在执行B之前,如何等待A的所有任务完成?

parallel-processing concurrency d task wait

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

D动态数组初始化,步幅和索引操作

对不起,这成了关于阵列的3个问题

我认为(动态)数组在D中真正强大,但以下一直困扰我一段时间:

在C++中,我可以轻松地分配具有指定值的数组,但在DI中没有找到一种方法.当然以下是没有问题的:

int[] a = new int[N];
a[] = a0;
Run Code Online (Sandbox Code Playgroud)

但它看起来效率低下,因为第一行将初始化0,并且像2一样a0.可以在D中完成类似以下的操作吗?

int[] a = new int(a0)[N]; // illegal
Run Code Online (Sandbox Code Playgroud)

在std.range中使用stride时我遇到的另一个效率问题:

import std.stdio;
import std.range;

struct S
{
    int x;

    this(this)
    {
        writeln("copy ", x);
    }
}

void f(S[] s)
{
}

int main()
{
    S[] s = new S[10];
    foreach (i, ref v; s)
    {
        v.x = i;
    }

    f(stride(s, 3)); // error
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当然我天真地想,我可以简单地使用步幅创建一个新的数组而不复制它的元素?在D中没有办法这样做,对吧?


所以我去模拟,好像数组一样大步返回,并实现f为:

f(s, 3);

void f(S[] s, uint …
Run Code Online (Sandbox Code Playgroud)

arrays d dynamic stride

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

QGraphicsView使场景比例达到全宽

我将QGraphicsView子类化,并在我的布局中显示小部件.在视图中我自然有QGraphicsScene.

我可以很好地检索QGraphicsScene大小(即像我设置的2100x2970),但QGraphicsView小部件的几何不正确.每当我调整主窗口的大小时,布局都会发生变化,视图窗口小部件也会发生变化.当然,QGraphicsScene的大小是无关紧要的,并且保持不变.但是通过视口显示滚动条和场景的小部件并没有为我提供正确的小部件宽度和高度.

在QtDesigner中,QGraphicsView小部件显示QWidget几何体为1126x643.但我永远无法在子类QGraphicsView类中检索这些值.

当我知道宽度(1126或主窗口调整大小时的其他内容)时,我可以计算视图的比例因子(比例因子= 1126/2100),以使场景覆盖视图窗口小部件的整个宽度.

在QGraphicsView中:

qDebug("scene: %f %f", scene()->width(), scene()->height()); // works (2100x2970)
qDebug("geo: %f %f", geometry().width(), geometry().height()); // does not (0x2970)
Run Code Online (Sandbox Code Playgroud)

qt qgraphicsview

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