Tag: gtk#

使用GTK进行GUI构建#

我可能需要使用C#和Mono构建GTK GUI。 如果我理解正确,那意味着我有3个选择: 编写C#代码来调用GTK#包装类。 GUI是“在代码中”。 使用MonoDevelop GUI设计器。 这使用stetic标记构建一个接口。 我似乎只是XML。 使用Glade和libglade创建GUI并在运行时加载它。 我对MonoDevelop的GUI编辑器有一点经验。 这很好,但有一些粗糙的边缘。 我可以想象在某些时候需要手动编辑stetic标记。 我过去也使用Glade和Python … 这两个项目都只是实验性的,所以我真的很想听听之前打过这场战斗的人。 各有哪些优缺点? 最后,如果该项目的开发可以在Windows,Linux和Mac OS X上进行,那将是很好的。

两个带共享滚动条的Gtk TextView小部件

我想要并排放置两个TextView小部件,它们与一个滚动条一起滚动。 我可以将两个TextView小部件放在Hbox中,然后将它们添加到Viewport,然后添加到ScrolledWindow。 然而,这不符合我的要求。 从滚动条滚动将起作用。 但是TextView中发生的操作不会改变滚动位置。 (箭头键,向上翻页,向下翻页等)我也无法使用TextView.ScrollToMark和其他TextView滚动方法以编程方式更改滚动。 如何让两个TextView小部件共享滚动条并在TextView中更新滚动操作?

GTK +(GTKSharp)在Windows中表现不佳

在我的Mono(C#)项目中,我将使用GTK作为UI。 然而,我注意到的一件事是,在我的Archlinux上网本中,性能非常快,因此鼠标hover和重绘小部件等事件真的很快。 与双核CPU上的windows(7)相比,性能确实很弱。 这困扰我。 我是否做错了保证操作系统之间的性能差异? 有什么方法可以在Windows上优化GTK? 对于hover事件来说,花费大约0.5秒的时间来开启它是非常糟糕的,而它几乎立即用于Linux上的弱(上)上网本。 我的代码在这里用于GUI层: http : //code.google.com/p/subsynct/source/browse/branches/dev/subsync#subsync/GUI 谢谢!

绘图区域中的GTK#鼠标事件

我有一个DrawingArea,我想收到鼠标事件。 从教程中我发现KeyPressEvent也会捕获鼠标事件。 但是对于以下代码,从不调用处理程序。 static void Main () { Application.Init (); Gtk.Window w = new Gtk.Window (“”); DrawingArea a = new CairoGraphic (); a.KeyPressEvent += KeyPressHandler; w.Add(a); w.Resize (500, 500); w.DeleteEvent += close_window; w.ShowAll (); Application.Run (); } private static void KeyPressHandler(object sender, KeyPressEventArgs args) { Console.WriteLine(“key press event”); } 我通过阅读不同的论坛和教程尝试了很多东西,包括: 将EventBox添加到窗口并将DrawingArea放入事件框并订阅EventBox的KeyPressEvent。 (没用) 调用AddEvents((int)Gdk.EventMask.AllEventsMask); 在任何和所有小部件上 我确实发现订阅Windows […]

GTK#图像按钮在运行时不显示图像

我试图在GTK#(Xamarin Studio)中使用图像按钮。我将图像设置为按钮,在UI Builder中,图像即将出现。 但是当我运行程序时,按钮中没有图像 我在不同版本的IDE和不同平台(Mac和Windows)上试过这个 请帮忙 更新:MainWindow.cs using System; using Gtk; public partial class MainWindow: Gtk.Window { public MainWindow () : base (Gtk.WindowType.Toplevel) { Build (); } protected void OnDeleteEvent (object sender, DeleteEventArgs a) { Application.Quit (); a.RetVal = true; } } 在gtk-gui文件夹中,我可以找到这些文件 generated.cs // This file has been generated by the GUI designer. Do […]

Gstreamer在Linux上运行良好

因为我目前正在为我的项目制作gstreamer绑定并获得信息,gstreamer-sharp 0.99.x只能使用glib-sharp 2.99.x,我认为创建一个测试项目是一个好主意。 所以我下载了名为“GTK#3简单项目模板”的monodevelop插件并编译了它 – >工作。 现在我添加了之前编译的gstreamer-sharp 0.99 dll并添加了以下代码: Gst.Application.Init(); Element music = Parse.Launch(“playbin uri=\”file:////media/Auslagerung/DJ/IDs/android.mp3\””); music.SetState(Gst.State.Playing); 当我播放此代码时,我得到以下exception: Marshaling clicked signal Exception in Gtk# callback delegate Note: Applications can use GLib.ExceptionManager.UnhandledException to handle the exception. System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. —> System.Reflection.TargetInvocationException: Exception has been thrown by the target of […]

如何在GTK#Spin Button中正确对齐数字?

任何人都可以告诉我如何正确对齐GTK#spinbutton控件中的数字? 我不能为我的生活弄清楚它是如何在那里工作的。 文档稀疏,我只是在经过多次尝试后画了一个空白。 提前感谢您的回复。

在Cygwin中编译Gtk#2.99.3未知类型uid_t和pid_t

在Cygwin64中编译最后一个mono版本(最新版本) 我使用mono c#compiler(msc)编译了一些C#测试 我想用Gtk做一些测试 所以我下载了源代码并尝试编译… 在解决了一些不断停止编译的小问题之后 我陷入了2种未知类型的错误: uid_t pid_t 错误是: /usr/include/glib-2.0/gio/gcredentials.h:75:1: error: unknown type name ‘uid_t’ /usr/include/glib-2.0/gio/gcredentials.h:79:52: error: unknown type name ‘uid_t’ 已经validation了所有mingw * / gcc *库的安装也都是* -devel和* -debug包但没有运气… 有任何想法吗 ?

如何使用GTKSharp打印图像

我正在将一个C#.NET应用程序移植到Mono .NET,以便在OSX中执行。 部分应用程序涉及打印图像。 在.NET中相当容易,主要归结为 e.Graphics.DrawImage(img, new Rectangle(x, y, printSize.Width, printSize.Height)); 在PrintDocument的PrintPage事件中。 Mono没有System.Drawing.Printing的完整实现,所以似乎最好的方法是使用GtkSharp。 我在网上找到了一些关于如何使用Gtk.PrintOperation打印文本的例子。 PrintOperation有一个事件DrawPage应该类似于PrintPage,但是我只能找到如何使用PangoSharp在这个事件中打印文本。 足够解释我所知道的,我认为问题是相当直截了当的。 我希望有人可以提供帮助,因为GtkSharp的打印没有很好的记录。 如果有更好的方法在GtkSharp之外做到这一点,我全都听见了。 非常感谢。 编辑 所以我设法打印了一些东西,然而,它始终是一个空白页面。 这是代码: var print = new PrintOperation(); print.BeginPrint += (obj, args) => { print.NPages = 1; }; print.DrawPage += (obj, args) => { PrintContext context = args.Context; Cairo.Context cr = context.CairoContext; var imageSurface = new Cairo.ImageSurface(printImage.FileName); […]

Visual Studio 2010中的GTK#

我一直在努力让GTK#​​在Windows Server 2008 R2 x64上的Visual Studio 2010中工作,这样我就可以开始编写漂亮的跨平台GUI应用程序,但我对C#有些新意,我有一个世界麻烦 我安装了最新的Mono for Windows,其中包括GTK#。 我还安装了一个Mono 2.10.8配置文件作为我的项目的目标框架,松散地遵循这里的指南: http : //erictummers.wordpress.com/2012/01/25/target-mono-from-visual-studio/ 我创建了一个新的Windows窗体应用程序并删除了对窗体表单内容的引用,并为GTK#stuff添加了引用,松散地遵循这里的指南: http : //jrwren.wrenfam.com/blog/2008/11/01/gtk-在视觉工作室-2008-上Vista的X64 / 除了指南中的那些之外,我还添加了对gtk-dotnet的引用。 这是我的应用程序的完整代码: using System; using System.Runtime.InteropServices; using System.Collections.Generic; using System.Linq; using Gtk; namespace GridToGo { static class Program { [STAThread] static void Main() { Application.Init(); Window myWin = new Window(“My first GTK# Application! “); myWin.Resize(200, […]