抱歉,我是 Gtk 的新手,所以这可能是个愚蠢的问题。我使用 Gtk+ 3.0 并有这段代码
GtkWidget *widget;
widget=gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 2);
gtk_box_pack_start(GTK_BOX(widget), some_label, FALSE, FALSE, 0);
Run Code Online (Sandbox Code Playgroud)
如何更改小部件的背景颜色?我正在尝试这样做
GdkColor red = {0, 0xffff, 0x0000, 0x0000};
gtk_widget_modify_bg(widget, GTK_STATE_NORMAL, &red);
Run Code Online (Sandbox Code Playgroud)
和其他一些例子,但没有一个适合我的情况。
我需要一些帮助 - 下一段代码将一个长的双动态数组写入文件
int nx = 10, ny = 10;
long double **data = new long double *[nx];
long double **data_read = new long double *[nx];
for (int i = 0; i < nx; i++) {
data[i] = new long double [ny];
data_read[i] = new long double [ny];
}
data[4][4] = 10.0;
printf("%LF\n", data[4][4]);
FILE *file = fopen("data", "wb");
fwrite(data, nx * ny * sizeof(data), 1, file);
fclose(file);
file = fopen("data", "rb");
fread(data, nx * ny * sizeof(data_read), 1, file …
Run Code Online (Sandbox Code Playgroud) 我有一个方法,必须根据它们的存在返回三个对象中的一个.
我的实施
try:
return Model.objects.get(param=param)
except Model.DoesNotExist as ex:
# go to the next verification
pass
try:
return RelatedModel.objects.get(param=param).model
except RelatedMolel.DoesNotExist as ex:
# get the default model
pass
return Model.objects.get_default()
Run Code Online (Sandbox Code Playgroud)
所以对于python的大师的问题 - 它是一个比内部try/catch块更具pythonic实现还是?
try:
return Model.objects.get(param=param)
except Model.DoesNotExist as ex:
try:
return RelatedModel.objects.get(param=param).model
except RelatedModel.DoesNotExist as ex:
return Model.objects.get_default()
Run Code Online (Sandbox Code Playgroud) 我对msgpack的haskell和python客户端之间的差异感到困惑.这个:
import Data.MessagePack as MP
import Data.ByteString.Lazy as BL
BL.writeFile "test_haskell" $ MP.pack (0, 2, 28, ())
Run Code Online (Sandbox Code Playgroud)
还有这个:
import msgpack
with open("test_python", "w") as f:
f.write(msgpack.packb([0, 2, 28, []]))
Run Code Online (Sandbox Code Playgroud)
给我不同的文件:
$ diff test_haskell test_python
Binary files test_haskell and test_python differ
Run Code Online (Sandbox Code Playgroud)
谁能解释一下,我做错了什么?也许我误解了一些关于ByteString
用法的事情?
我想做这样的事情(根据某些条件定义一个lambda函数):
auto update;
if(condition)
{
update = [this]() {this->someField += 1;};
}
else
{
update = [this]() {this->someField -= 1;};
}
update();
Run Code Online (Sandbox Code Playgroud)
它真的可能以这种或那种方式存在吗?gcc-4.8对此代码的错误是
error: declaration of ‘auto update’ has no initializer
Run Code Online (Sandbox Code Playgroud)