zoukankan      html  css  js  c++  java
  • Linux图形界面开发—monodevelop初探

    在ubutu10.04下,如果通过源码安装monodevelop有问题,建议用ubuntu自带的软件包管理器安装。

    下面通过几个例子测试下monodevelop

    (1)控制台应用程序

    u

    强大的界面于windows下的vs差不多。输入项目的名称,保存位置,解决方案的名称,保存位置,与windows下一样的哦,其他设置都默认。

    一切都是那么的熟悉,c#代码。编译好后,会生成一个consol.exe的可执行文件,直接F5运行可以得到输出结果

    也可以通过命令guoyuanwei@localhost:~$ mono /home/guoyuanwei/monotest/consol/consol/bin/Debug/consol.exe 得到结果
    Hello World!
    (2)Gtk#图形界面的程序

    在上面创建的解决方案上,点击鼠标右键-》Add-》Add New Project添加一个新的项目,在弹出的窗口中选择GTK#2.0,最后生成的界面如下

    可以看到左边解决方案的下面多了一个项目GtkTest,编译此项目,运行后得到如下界面

    上面的界面有点简单,下面加以改进,点击查看-》属性和工具栏,即打开工具栏和熟悉窗口,下面是一部份工具栏窗口,可以适当的修改窗体界面,通过工具栏。

    修改后界面如下:

    代码如下:

    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;
    	}
    	
    	//打开日志进行查看
    	protected virtual void OnOpen (object sender, System.EventArgs e)
    	{
    		 // Reset the logTreeView and change the window back to original size
         int width, height;
         this.GetDefaultSize( out width, out height );
         this.Resize( width, height );
         
         LogView.Buffer.Text = "";
         
         // Create and display a fileChooserDialog
         FileChooserDialog chooser = new FileChooserDialog(
            "Please select a logfile to view ...",
            this,
            FileChooserAction.Open,
            "Cancel", ResponseType.Cancel,
            "Open", ResponseType.Accept );
         
         if( chooser.Run() == ( int )ResponseType.Accept )
         {
            // Open the file for reading.
            System.IO.StreamReader file =
            System.IO.File.OpenText( chooser.Filename );
            
            // Copy the contents into the logTextView
            LogView.Buffer.Text = file.ReadToEnd();
            
            // Set the MainWindow Title to the filename.
            this.Title = "Nate's Log Viewer -- " + chooser.Filename.ToString();
            
            // Make the MainWindow bigger to accomodate the text in the logTextView
            this.Resize( 640, 480 );
            
            // Close the file so as to not leave a mess.
            file.Close();
         } // end if
         chooser.Destroy();
    	}
    	//关闭应用程序
    	protected virtual void OnCloseActivated (object sender, System.EventArgs e)
    	{
    		Application.Quit();
    	}
    如果要开发出更加复杂的图形界面在linux上,还得继续研究GTK#,不过总体思路和winform开发一致。



  • 相关阅读:
    一条insert语句批量插入多条记录
    分析器错误消息: 未能加载类型“WebApplication._Default”
    Avi视频生成缩略图时,提示“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”
    DataGridView 的单元格的边框、 网格线样式的设定【转】
    2015届求职经历(转)
    现在有m组n个有序数组,例如{1,2,3,4},{2,3,4,6},{1,3,5,7},在这些数组中选择第k小的数据,然后返回这个值
    给定数组A,大小为n,现给定数X,判断A中是否存在两数之和等于X
    ASP.Net中使用Report Service
    为自己尝试写点东西吧,程序员们!(转)
    ubuntu菜单面板丢了怎么找回
  • 原文地址:https://www.cnblogs.com/guoyuanwei/p/2404833.html
Copyright © 2011-2022 走看看