寻找一个C++ GUI库,你可以在其中设计精美的GUI(比如游戏),你可以在其中创造美丽的东西(带有翻转效果的圆形按钮,嵌入漂亮的背景图形,炫酷多彩的滚动条和进度条等)
它需要是开源的,并允许在专有软件中使用.也应该是跨平台的,并且不需要链接到数千个库或几天来使编译器配置为即使对于小样本也能运行.
我希望我不要求太多
我尝试过CEGUI并且我不相信 - 它很棘手,我编译了样本,但它们没有在某些计算机上运行.
QuickGUI似乎需要OGRE(告诉我,如果我错了),我现在不想学习.
Navi需要GeckoRuntime,这对我的项目来说太大了!
wxWidgets似乎并不专注于设计而是功能(告诉我,如果我错了)
Cassandra中的一些操作似乎需要很长时间才能完成,我正在尝试确定如何深入了解其进度,或确定系统是否已停滞.
我特别感兴趣的两个是:
nodetool decommissionnodetool repair这似乎表明您可以使用nodetool compactionstats查看进度nodetool repair,但nodetool compactionstats不输出任何我可以从中获得进展的内容.压缩工作来去匆匆,但待处理工作的数量似乎徘徊在40左右.底部还有一个计时器,它似乎正在下降,但它的下降非常缓慢.(我说它每10分钟下降约3分钟?它只翻了四倍.)
一个聊天室建议我用nodetool netstats"查看流"以便退役,但同样,这只是告诉我一些"流"正在发生,它们有多完整.大多数被列为100%(或者更多,在某些情况下!),偶尔,它们都是,但是会出现一个新的流,所以我对如何传达一个decom的进展感到茫然.
我在存储桶上启用了对象版本控制。我想在该存储桶中获取所有版本的密钥。但我找不到方法去做这件事;如何使用 S3 API 实现这一目标?
我正在尝试上传文件boto,
import io
from boto.s3 import connection
from boto.s3 import key
conn = connection.S3Connection()
bucket = conn.get_bucket('my-bucket')
my_key = key.Key(bucket, 'asdf')
d = b'this is a test....\n' * 512000
f = io.BytesIO(d)
my_key.send_file(f, size=4*1024)
Run Code Online (Sandbox Code Playgroud)
但是,这导致:
boto.exception.S3ResponseError: S3ResponseError: 400 Bad Request
<?xml version="1.0" encoding="UTF-8"?><Error><Code>BadRequest</Code><Message>An error occurred when parsing the HTTP request.</Message><RequestId>[hex request ID]</RequestId><HostId>[giant piece of base64]</HostId></Error>
Run Code Online (Sandbox Code Playgroud)
为什么这个请求失败了?
(注意:我在send_file这里使用的全部原因是因为open显然只支持阅读...)
我有一个带有一些控件的表单。(实际上,这是一种持续存在的问题。)我拥有的一些表格可以调整大小,有些则不是。无论如何,当显示表单时,让它以所需的“最小”尺寸显示会很好。其他窗口工具包,例如 wxWidgets (wxWindow::GetMinSize) 和 Qt (QWidget::minimumSize) 具有此功能。
如果您不熟悉此功能,它允许窗口将自身调整为最小尺寸,这通常是窗口所需的全部尺寸,并且看起来相当不错。如果我有两个静态文本,并且有两个编辑框这样布置:
Username:
[ Edit/text box for user's password]
Password:
[ Edit/text box for user's password]
[ Cancel ][ OK ]
Run Code Online (Sandbox Code Playgroud)
然后我可以告诉这个表单将自身的大小调整为它的“最小大小”,它看起来很像上面。(文本框中的最小宽度部分是主观的 - 我必须自己在一个/两个文本框中设置它,但表单会查询子控件并了解该最小宽度)这通常与某些布局结合使用种类。(.Net 有。)
这有一个额外的好处,即无论字体设置、语言环境、dpi、gui 皮肤等如何,表单都是正确的大小(如果做得对,至少。)
这是否存在于 .Net 中,如果存在,在哪里?如果您需要更多描述,请询问,我很乐意提供。
编辑:我正在寻找的是上面的例子,只能在 X 方向调整大小(我愿意接受两者)但不能调整为小于某个 W/H。控件应该锚定——即,文本框变大,按钮保持右对齐。
编辑:我可以做图像!据说它们值一千个字: 替代文本 http://www.freeimagehosting.net/uploads/79e9ee10e5.png
编辑:我想我要开始标记答案了。Henk 的回答让我得到了一个适合其内容的不可调整大小的对话框。下面的大多数帖子都很有价值,但没有抓住重点(除非我真的不在乎?):我了解如何使用 Anchor/TableLayout,并让控件在那里流动 - 它主要是获得一个或两个维度的对话框以适应对话框的内容。您基本上有三种情况:
对话框不可调整大小 - 请参阅 Henk 的回答。结合 TableLayout 和 Anchors,您将获得一个不错的对话框。
对话框只能在一维中调整大小 - 选择 1 或 3 - 您可以使用 Resize 事件来约束一个维度,但对话框闪烁得可怕。(据我所知,这似乎是 Win32 中的一个缺陷 - 有一些关于覆盖背景擦除的内容,这适用于控件,但不适用于 Windows,因为您将在表单的背景中获得工件(因为您'不是擦除它们。真正的答案是这可能应该由 Win32 本身来处理 - 我不应该为了获得一个像样的外观对话框而重新发明双缓冲轮......))
该对话框是完全可调整大小的。Anchors 和 TableLayout 是你的朋友。不幸的是,MinimumSize …
我正在编写一个通过 TCP 传输文件的程序。
我想在 IP 上设置不分段标志
在套接字上,这就是我想要做的:
int val = 1;
setsockopt(sd, IPPROTO_IP, IP_DONTFRAG, &val, sizeof(val));
Run Code Online (Sandbox Code Playgroud)
但IP_DONTFRAG在 Mac 操作系统上似乎不可用。我错过了什么吗?或者我忘记正确包含它?
如果有人知道的话先谢谢了
——萨姆
对于返回的迭代器std::back_inserter(),有什么东西可以用作"结束"迭代器吗?
这看起来有点荒谬,但我有一个API,它是:
template<typename InputIterator, typename OutputIterator>
void foo(
InputIterator input_begin,
InputIterator input_end,
OutputIterator output_begin,
OutputIterator output_end
);
Run Code Online (Sandbox Code Playgroud)
foo对输入序列执行一些操作,生成输出序列.(已知谁的长度,foo但可能或可能不等于输入序列的长度.)
获取output_end参数是奇怪的部分:std::copy例如,不执行此操作,并假设您不会将其传递给垃圾.foo它是否提供范围检查:如果你传递的范围太小,它会以防御性编程的名义抛出一个异常.(而不是潜在地覆盖内存中的随机位.)
现在,假设我想传递foo一个后插入器,特别是一个std::vector在内存限制之外没有限制的插入器.我仍然需要一个"结束"迭代器 - 在这种情况下,一些永远不会比较平等的东西.(或者,如果我有一个std::vector但有长度限制,也许它可能有时比较相等?)
我该怎么做呢?我确实有能力改变fooAPI - 最好不检查范围,而是提供另一种方法来获得所需的输出范围?(对于原始数组而言,无论如何都需要这样,但后向插入器不需要进入矢量.)这看起来不太稳健,但我正在努力使"强大"(上图)工作.
我有一个格式列表:
("some string", "string symbol", some number)
Run Code Online (Sandbox Code Playgroud)
例如,("Apples", "=", 10).我需要将它们写入输出文件,如下所示:
Apples = 10
Run Code Online (Sandbox Code Playgroud)
我在使用write方法时遇到了麻烦.怎么做到呢?
可以将 MD5/SHA256/SHA512 等用作 PRNG 吗?例如,给定一个整数种子,是伪代码:
random_number = truncate_to_desired_range(
sha512( seed.toString() + ',' + i.toString() )
Run Code Online (Sandbox Code Playgroud)
...一个体面的PRNG?(i是一个递增的整数,例如,输出是:
convert(sha512("<seed>,0"))
convert(sha512("<seed>,1"))
convert(sha512("<seed>,2"))
convert(sha512("<seed>,3"))
…
Run Code Online (Sandbox Code Playgroud)
在这个问题的上下文中,“体面”仅指输出的分布:以这种方式使用时,加密哈希函数的输出是否统一?(虽然我认为这取决于散列函数,但所有加密散列也应该具有统一的输出,对吗?)
注意:我承认,与 Mersenne-Twister 相比,由于使用了加密哈希,这将是一个缓慢的 PRNG。我对速度不感兴趣,我对结果的安全不感兴趣——只是分布是正确的。
在我的特定用例中,我正在寻找类似于XKCD 的 geohashing 的东西,因为它很容易由分布式各方实现,他们都会得到相同的答案。Mersenne-Twister 可以被替代,但它在许多目标语言中不太可用。(有些语言完全没有它,有些语言无法访问它的原始 U32 输出,等等。SHA512 要么是内置的,要么很容易获得。)
有没有办法在a中使用预定义的响应(例如GTK_RESPONSE_OK)GtkDialog,而无需对ID进行硬编码?默认情况下,Glade会在那里生成带"0"的XML,并为我提供一个数字条目.虽然我想我可以进入-5,但这似乎打败了一个常数.
Glade XML看起来像这样:
<action-widgets>
<action-widget response="0">cancel-button</action-widget>
<action-widget response="0">connect-button</action-widget>
</action-widgets>
Run Code Online (Sandbox Code Playgroud)
甚至文档中的示例:
<action-widgets>
<action-widget response="3">button_ok</action-widget>
<action-widget response="-5">button_cancel</action-widget>
</action-widgets>
Run Code Online (Sandbox Code Playgroud)
(这有点搞笑,因为他们使用-5(GTK_RESPONSE_OK)表示" button_cancel"...)