小编Jer*_*err的帖子

何时定义GTK类,何时使用信号?

我是GTK的新手,我正在搞乱我的第一个"严肃的"GTK(gtk + -3)应用程序.我想借鉴别人的经验,了解何时适合定义新的GTK类,或者只使用"vanilla"GTK类,并通过信号处理程序实现行为.

到目前为止,我遇到过两个例子:

自定义小部件

我正在创建一个新的小部件:基本上是一个GtkDrawingArea,我用它来显示一些数据.我原本假设实现这个的最好方法是继承GtkDrawingArea,使用G_DEFINE_TYPE,并提供我自己的绘制回调:

static void mywidget_class_init(MyWidgetClass *klass)
{
    GTK_WIDGET_CLASS(klass)->draw = mywidget_draw;
}
Run Code Online (Sandbox Code Playgroud)

但是,看起来我可以在不定义新类型的情况下实现完全相同的功能,只需创建一个vanilla GtkDrawingArea,并在初始化期间连接相应的信号.

[我的自定义窗口小部件最终将提供的不仅仅是绘制回调,因为它需要是交互式的,但后来会......

应用程序Windows

我的应用程序包含几个不同的窗口,目前是vanilla GtkWindows:

struct myapp_somewindow {
    struct myapp *app;
    GtkWindow    *window;
    GtkWidget    *some_label_that_is_updated;
    /*... other window-specific fields */
}
Run Code Online (Sandbox Code Playgroud)

初始化myapp_somewindow结构时,我创建了GtkWindow gtk_window_new(),并初始化小部件/布局/等,并连接信号.[我可能最终会在更复杂的情况下使用.ui文件,但是现在窗口很简单.]

这可以通过定义GtkWindow的新子类来完成,但我不确定定义新类的代码开销何时变得有价值.


我知道对于采取哪种方法可能没有严格的规则,但在做出这些设计决策时是否有任何一般指导原则?这两种方法都有任何重大缺陷吗?

c gtk oop

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

了解PowerPC rlwinm指令

所以我终于说服自己尝试学习/使用PowerPC(PPC).一切进展顺利,大多数信息都是在网上找到的.但是,在查看一些示例时,我发现了这个:

rlwinm    r3, r3, 0,1,1
Run Code Online (Sandbox Code Playgroud)

我怎么用C做这个?我尝试做一些研究,但找不到任何帮助我的东西.提前致谢!

c powerpc

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

标签 统计

c ×2

gtk ×1

oop ×1

powerpc ×1