以下PyGTK代码在窗口中显示PNG文件.
是否有更简单或更好的方式显示PNG文件,例如,使用gtk.DrawingArea?例如,如何调整文件大小?
import gtk
import pygtk
pygtk.require('2.0')
class Gui:
def __init__(self):
# Create an Image object for a PNG file.
file_name = "file.png"
pixbuf = gtk.gdk.pixbuf_new_from_file(file_name)
pixmap, mask = pixbuf.render_pixmap_and_mask()
image = gtk.Image()
image.set_from_pixmap(pixmap, mask)
# Create a window.
window = gtk.Window()
window.set_title("PNG file")
window.connect("destroy", gtk.main_quit)
# Show the PNG file in the window.
window.add(image)
window.show_all()
if __name__ == "__main__":
Gui()
gtk.main()
Run Code Online (Sandbox Code Playgroud)
致谢:我使用网络上其他人的代码创建了上述代码.
我正在开发一个应用程序,当单击按钮时,该应用程序具有数字小键盘和文本框,文本框显示该数字.我需要为每个按钮编写一个函数吗?或者您可以将文本和小部件作为参数传递?
#include <stdio.h>
#include <stdlib.h>
#include <gtk/gtk.h>
void callback( GtkWidget *widget,
gpointer data )
{
gtk_entry_append_text(entry, text);
}
void create_button(GtkWidget* table,GtkWidget* entry,
int start_r,int end_r,
int start_c,int end_c,
char* label)
{
GtkWidget *button;
button = gtk_button_new_with_label (label);
g_object_set_data( G_OBJECT( button ),
"char", (gpointer)label );
g_signal_connect (button, "clicked",
G_CALLBACK (callback), entry);
gtk_table_attach_defaults (GTK_TABLE(table), button, start_c, end_c, start_r, end_r);
gtk_widget_show (button);
}
gint delete_event( GtkWidget *widget,
GdkEvent *event,
gpointer data )
{
gtk_main_quit ();
return(FALSE);
}
int main(int argc,char* argv[]){
GtkWidget *window; …Run Code Online (Sandbox Code Playgroud) 我用GTK + 2.0测试了一些信号.我正在寻找一种方法来点击GtkEntry时发出信号.
if (widgets_info[i].action & IG_INPUT)
{
widget->frame[i] = gtk_entry_new_with_max_length(MAX_INPUT_LENGTH);
gtk_entry_set_text(widget->frame[i], widgets_info[i].text);
catch_signal(widget->frame[i], MY_SIGNAL, &change_entry, widget);
}
Run Code Online (Sandbox Code Playgroud)
我的条目(widgets_info[i].text)中有一个预先选择的文本,如果用户单击我的GtkEntry,我希望此文本消失.
有人知道这个信号是什么吗?
(对不起我的英语不好)
我正在使用GTK + 2.0和Cairo在C中编写自定义应用程序.仅用于学习目的(如果成功,然后用于部署),我希望重新创建类似于覆盖工具栏/窗口小部件(我很抱歉,如果术语不正确),当鼠标移动到窗口上的给定区域时出现,当鼠标移开时消失.正如我想象的那样,工具栏应该出现在现有小部件的顶部,而不会替换它们或以任何方式改变小部件包装.有可能完成吗?如果是,请您指出相关的教程/示例和/或概述一种方法来做同样的事情?提前致谢.
我已经在Windows上通过MSYS和MinGW安装了GTK +(特别是GTK3)。现在,我想将GTK + dll复制到我的应用程序目录中,这样它就可以在没有全局安装GTK +的计算机上运行。GTK +运行需要哪些dll?
我想设置阻止对话框后面的窗口,以防止用户在对话框运行时单击或修改窗口的任何内容,并且当用户关闭对话框时设置解锁对话框后面的窗口。
import gtk;
window = gtk.Window();
window.set_title("Window Behind Dialog");
window.set_default_size(426,240);
textentry = gtk.TextView();
window.add(textentry);
window.show_all();
dialog = gtk.Window();
dialog.set_title("Dialog");
dialog.set_default_size(256,144);
label = gtk.Label("Unlock the window behind when this dialog get close");
dialog.add(label);
dialog.show_all();
gtk.main();
Run Code Online (Sandbox Code Playgroud)
在 Gtk 或 PyGtk 中使用哪种方法?例如:
window.set_disabled_to_all_events();
Run Code Online (Sandbox Code Playgroud)
或者
window.set_disabled();
Run Code Online (Sandbox Code Playgroud)
或者
window.events_disabled(True);
Run Code Online (Sandbox Code Playgroud)
或者
window.set_blocked(True);
Run Code Online (Sandbox Code Playgroud) 试图从 ImageSurface 创建 Pixbuf,但我得到的只是黑色像素。有任何想法吗?
Cairo.ImageSurface surface = mysurface;
int w = surface.Width;
int h = surface.Height;
Gdk.Pixmap pixmap = new Gdk.Pixmap(null, w, h, 24);
using (Cairo.Context cr = Gdk.CairoHelper.Create(pixmap)) {
cr.Operator = Cairo.Operator.Source;
cr.SetSource(surface);
cr.Paint();
}
_pixbuf = Gdk.Pixbuf.FromDrawable(pixmap, Gdk.Colormap.System, 0, 0, 0, 0, w, h);
Run Code Online (Sandbox Code Playgroud) 我已经为Windows 7执行了以下步骤
Boost link http://www.boost.org/doc/libs/1_49_0/libs/python/doc/
1. Downloaded boost_1_60_0 .zip
2. cd \boost_1_60_0\tools\build
3. Ran below command in command prompt
bootstrap.bat gcc
bjam --toolset=gcc "--prefix=C:\DestinationFolder" install
Now i have b2.exe & bjam.exe in C:\DestinationFolder\bin
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我做下一步该怎么做,因为我无法进一步处理
我是GTK的新手,我正在使用它在C中创建UI.我创建了一个启动画面,我可以在指定的秒后使用该功能关闭它g_timeout_add(100, function_to_call, NULL);.Splash屏幕效果很好.但问题是当我进一步扩展我的程序时(即)关闭启动画面后我想要另一个窗口自动显示,它不会发生.两个窗户一起打开.这是我的计划.
gboolean function_to_call(gpointer data){
gtk_quit_main();
return(FALSE);
}
int main (int argc, char *argv[]){
GtkWidget *window, *image, *another_window;
gtk_init(&argc, &argv);
.
.
.
.
.
.
.
g_timeout_add (100, function_to_call, NULL);
gtk_main ();
/*if my program is till this, splash screen closes after 1 sec . But when i try
*to define another window from here onwards and call gtk_widget_show() and gtk_main()
*again for another_ window, window and another_window both open together and window
*doesn't close after …Run Code Online (Sandbox Code Playgroud) 我想将一个Gtk.Entry(已Gtk.EntryCompletion连接)打包到Gtk.TreeView. 有谁知道如何做到这一点?(我只需要对表格视图中的文本条目进行输入完成。)
Do I perhaps need to subclass Gtk.CellRenderer or Gtk.CellRendererText, and override the start_editing method (or similar)? I can find examples of subclassing Gtk.CellRenderer, but not modifying the editable behaviour. I can't find the source-code for the Gtk.CellRendererText class, either.
I'm using Gobject Introspection (i.e. from gi.repository import Gio, Gtk, GLib, Gdk).