我正在尝试从谷歌代码编译简单的GST 播放器。我已经修复并安装了丢失的库,现在我收到链接器错误
\n\nvickey@tb:~/work/gst-player-0.0.0$ make\ngcc -ggdb -Wall -W -Wformat-nonliteral -Wcast-align -Wpointer-arith -Wbad-function-cast -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Winline -Wundef -Wnested-externs -Wcast-qual -Wshadow -Wwrite-strings -Wno-unused-parameter -Wfloat-equal -pedantic -ansi -std=c99 `pkg-config --cflags gtk+-2.0` `pkg-config --libs gtk+-2.0` `pkg-config --cflags gstreamer-0.10` `pkg-config --libs gstreamer-0.10` -lgstinterfaces-0.10 ui.c gst-backend.c -o gst-player\nIn file included from /usr/include/gtk-2.0/gtk/gtk.h:236:0,\n from ui.c:19:\n/usr/include/gtk-2.0/gtk/gtkitemfactory.h:47:1: warning: function declaration isn\xe2\x80\x99t a prototype [-Wstrict-prototypes]\nui.c: In function \xe2\x80\x98toggle_fullscreen\xe2\x80\x99:\nui.c:60:9: warning: passing argument 1 of \xe2\x80\x98gtk_window_unfullscreen\xe2\x80\x99 from incompatible pointer type [enabled by default]\n/usr/include/gtk-2.0/gtk/gtkwindow.h:340:10: note: expected \xe2\x80\x98struct GtkWindow *\xe2\x80\x99 but …Run Code Online (Sandbox Code Playgroud) 我编写了一个小测试应用程序,它生成一个 GUI,如下所示:

我对 gtk 编程非常陌生。在这个小 GUI 中,有一个树视图,当我尝试扩展它时,它跨越了可视窗口大小。我只想向这个窗口添加一个滚动条(垂直),它显示treeview 并且我想在滚动条向上或向下移动(逐步)时捕获该滚动条的事件。任何人都可以帮助我如何将此功能添加到我当前的小 GUI 中。不幸的是,我没有在网上找到任何关于这个的好材料,这促使我提出这个问题。
我想这对于真正的 gtk 程序员来说应该是一件容易的事。
下面是相同的代码:
#include <gtk/gtk.h>
enum
{
COLUMN = 0,
NUM_COLS
} ;
void on_changed(GtkWidget *widget, gpointer statusbar)
{
GtkTreeIter iter;
GtkTreeModel *model;
char *value;
if (gtk_tree_selection_get_selected(
GTK_TREE_SELECTION(widget), &model, &iter)) {
gtk_tree_model_get(model, &iter, COLUMN, &value, -1);
gtk_statusbar_push(GTK_STATUSBAR(statusbar), gtk_statusbar_get_context_id(GTK_STATUSBAR(statusbar), value), value);
g_free(value);
}
}
static GtkTreeModel *
create_and_fill_model (void)
{
GtkTreeStore *treestore;
GtkTreeIter toplevel, child;
treestore = gtk_tree_store_new(NUM_COLS,
G_TYPE_STRING);
gtk_tree_store_append(treestore, &toplevel, NULL);
gtk_tree_store_set(treestore, &toplevel, COLUMN, "Scripting languages", -1);
gtk_tree_store_append(treestore, &child, …Run Code Online (Sandbox Code Playgroud) 我不明白gtk.Treeview()列表模型是如何工作的:
据我所知,我必须将 lismodel 包装在 a 中,gtk.TreeModelSort()但是当我这样做时,我无法再访问 listmodel 方法了..
lm = gtk.ListStore(object)
listmodel = gtk.TreeModelSort(lm)
for f in files:
listmodel.append([f])
return listmodel
Run Code Online (Sandbox Code Playgroud)
AttributeError: 'gtk.TreeModelSort' 对象没有属性 'append'
我知道如何将图像设置为 GtkWindow 的图标。
GtkWindow * window;
gtk_window_set_icon_from_file(window, "icon.png", NULL);
Run Code Online (Sandbox Code Playgroud)
并将 icon.png 与 exe 放在一起。
但是,如果我不想将该图像文件保留在我的文件夹中怎么办?我希望它以某种方式捆绑在 exe 文件中。
我知道这可以用 Qt 中的 qrc 来完成。我也可以在 GTK+ 中执行此操作吗?
我想用 GTK+ 编写一个简单的文本编辑器,我想存储用户配置,如 font-size font-type 等......我想写这样的功能:
char *fontName = "monospace bold 12";
char *getFont(something);
void setFont(char *fontName);
Run Code Online (Sandbox Code Playgroud) 我试图了解以下概念,但我阅读的所有文档都将所有文档捆绑在一起,而没有解释它们中的任何一个真正是什么,因此我不知道如何正确使用它们中的任何一个. 如果有人能给出某种现实世界的类比,那将大有帮助。
TreeView ListView(这甚至是一件事吗?) TreeStore ListStore TreeModel TreeIter
我的最终目标是从数据库中读取一组结果并将它们作为可点击的项目显示在小部件上。我已经完成了查找和检索部分,但将结果传回、显示它们并让它们更新被证明要棘手得多。
更新: 以下内容旨在从 postgreSQL 数据库中读取结果并将其放入“容器”中,从那里我可以将结果分配给输出对话框:
result = self.lookup_player(search) # this returns a result of cur.fetchall
print result # just to make sure it returns the right things
if len(result) > 0: # make sure there are results
for i in range(0, len(result)): # i used treeiter to see what it did
treeiter=store.append([result[i][0],result[i][1],str(result[i][4])])
print result[i][0],result[i][1],result[i][2],result[i][3],result[i][4],result[i][5],result[i][6],result[i][7],result[i][8],result[i][9],result[i][10]
else:
print "No players found"
Run Code Online (Sandbox Code Playgroud)
我在上面使用了 ListStore,因为它看起来最合适。但也许我应该使用 Treestore,或者一个简单的列表,或者一个数组……很容易看出字符串是什么,或者一个整数,一个浮点数,但是这些列表/树/模型/商店实际上是什么样子的或者做什么?
几年前我不得不放弃用 C 编码,因为我无法理解多态链表是什么,而这次我非常想避免与 python 相同的命运。
我有一个窗口,它有两个下拉列表(国家和俱乐部),它们永远不应该同时可见。
当应用加载时,两者都不应该可见。第三个下拉列表(锦标赛类型),默认情况下不选择任何内容,决定应显示哪个俱乐部或国家/地区列表。单击屏幕顶部的按钮会填充下拉列表,选择适当的锦标赛类型和相关的俱乐部/或国家/地区。
实际发生的情况:加载时,两个下拉列表都可见。选择锦标赛类型后,两个列表都可见。当我单击顶部的按钮时,俱乐部列表可用,而国家列表则不可用。后者正是它应该的样子。
我使用相同的函数 (set_visible()) 在每种情况下显示或隐藏列表,所以我不知道为什么它在一种情况下有效,而在其他两种情况下无效。
下面的代码应该运行。#Add Tournaments Tab 之后的位创建了小部件,但未成功尝试隐藏组合框。函数 on_type_combo 更改未成功尝试隐藏组合框之一。函数 on_tournament_details 成功隐藏了相应的框。
#!/usr/bin/python
# coding=utf-8
from gi.repository import Gtk
import wikipedia
class NotebookWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="Rugby Database")
#Initialise data
self.country_store = Gtk.ListStore(int, str, str)
self.club_store = Gtk.ListStore(int, str, str, int, int)
self.tournament_store = Gtk.ListStore(int, str, int, str, int)
self.cur_id = 0
self.cur_club = ''
self.cur_club_id = 0
self.update_club_id = 0
self.update_tournament_id = 0
self.initialise_lists()
#Create Application Window
self.set_border_width(10)
self.set_default_size(800, 600)
self.set_position(Gtk.WindowPosition.CENTER)
#Add external container (box)
vbox = …Run Code Online (Sandbox Code Playgroud) 我想在 C++ 中使用 Gtkmm 在列表框中添加这种类型的文本。

你能建议我怎么做吗?
我正在尝试使用 GTK3 库和 pycairo 在 python3 中制作一些简单的动画。
我一直试图找到简单的单文件示例但无济于事,但我确信它是可行的。
我找到的最接近的是:https://cairographics.org/cookbook/animationrotation/,但这是在 python2 中,库/依赖项完全不同。
有没有人能指点我一个体面的来源,或对上述代码的修改?
谢谢!
我尝试查找有关添加彩色按钮小部件的信息。我尝试添加suggested-action为类,但按钮仍然是灰色的。所以我想用我自己的样式信息编写我自己的 css 文件。我正在使用glade来创建glade文件并从我的main.py中构建gui。
我必须将 css 文件放在我的源代码树中的什么位置以及如何导入它?