用Nim语言开发windows GUI图形界面程序

前言

本文得到了“樂師”的大力支持,

我们一起调试程序到深夜,要是没有他的帮忙,

我不知道要多久才能迈过这道坎,

另外“归心”还有其他人也提供了帮助,

他们都来自于QQ群:“Nim开发集中营”469329878;

感兴趣的朋友,可以加这个群一起讨论

 

配置GUI开发环境

我在这篇博客中,写到了Nim开发环境的搭建

那篇博客中说MingW是必选的,

这对于开发一个普通的Nim程序来说,没有问题,但要开发GUI程序,还不够

官方安装包中所包含的的MingW安装包有点问题

如果你用编译命令:--app:gui,编译你的程序,将会出错

如果你不用这个编译命令,那么在你执行你的程序时,会先打开一个命令行窗口,再打开你的GUI程序。

具体为什么会出错,我还不是很清楚

(有可能那个MingW的安装包是64位的,也有可能那个安装包是阉割版的)

 

所以我们要自己安装一个MingW,

Nim官方网站推荐到MingW官网去下载64位的安装包,

MingW官网,要求你先装一个安装工具,再通过安装工具下载你需要的MingW程序

(说实在的,那个安装工具会搞的你很乱)

我是用“乐师”推荐给我的TDM安装工具安装MingW的

 

要注意的是,一定要安装32位的MinGW

我现在也不是很清楚为什么64位的MingGW为什么不行

安装好之后需要配置一下环境变量,把如下路径配置到环境变量中:

C:\TDM-GCC-32\bin

(当然你如果装到别的路径下去了,那就另当别论)

 

然后你应该把Nim的bin路径也配置到环境变量中:

C:\Nim\bin

这样你就可以使用命令行来编译你的程序了

(你用aporia官方提供的IDE来编译你的程序,默认是没有设置--app:gui开关的)

 

开发GUI程序

好下面我们写个程序

# test a Windows GUI application

import
  windows

#proc MessageBox(hWnd: int, lpText, lpCaption: CString, uType: uint): int
#  {stdcall, import: "MessageBox", header: "<windows.h>"}

discard MessageBox(0, "中文试试", "Nimrod GUI Application", 0)

在这个程序中我们使用了windows模块

你可以在这里看到windows模块提供的API:http://nim-lang.org/docs/windows.html

你还可以使用IUP模块GTK模块开发GUI程序

 

 

编译并执行程序

然后通过下面的命令行,来编译这个程序:

nim c --app:gui -d:release  wingui.nim

注:

nim是编译器

c是compile的缩写

-app:gui是编译成gui程序的开关

-d:release是release编译开关

wingui.nim是程序源文件

这行命令必须在程序源文件所在目录下执行

命令执行完成后,在同目录下会生成可执行文件

运行这个程序,你会发现中文乱码:

这是你只要把源码文件改成ANSI或者gb2312编码,重新保存

然后再编译一次,就好了

 

时间: 2024-10-01 03:38:49

用Nim语言开发windows GUI图形界面程序的相关文章

《Abaqus GUI程序开发指南(Python语言)》——1.2 Abaqus图形界面程序开发的意义

1.2 Abaqus图形界面程序开发的意义 通过1.1节介绍的简单实例,相信大家对Abaqus软件的图形界面程序开发有了一定的认识.传统的采用手动建模过程中,需要反复切换模块.点击按钮.输入数据等,过程繁琐,耗时费力.通过对商业有限元软件的前后处理模块进行二次开发,可以有效提高前后处理效率,节省建模及数据处理时间.采用Python语言对Abaqus进行二次开发具有以下优点. (1)可以通过图形交互界面,实现参数的统一管理. (2)可以避免大量重复性的建模工作,避免人为建模错误.对于具有典型共有特

怎样让Java图形界面程序启动时没有控制台窗口?

程序|控制|图形 缺水的海豚 写了一篇文章介绍 如何在C/C++中调用Java的方法 . 写得相当好,谢谢! 文章中提到, Java跨平台的特性使Java越来越受开发人员的欢迎,但也往往会听到不少的抱怨:用Java开发的图形用户窗口界面每次在启动的时候都会跳出一个控制台窗口,这个控制台窗口让本来非常棒的界面失色不少.怎么能够让通过Java开发的GUI程序不弹出Java的控制台窗口呢? 有一个秘密(JDK文档中没提到),可以简单地解决这个问题.如果想运行Java图形界面程序,也用不着费劲写一个这样

Java GUI图形界面开发工具

原文http://www.cnblogs.com/bluestorm/archive/2012/08/15/2639863.html 上大学那会儿比较主流 的Java图形开发插件是:Visual Editor 和 SWT Designer, 不久又出了个Jigloo, 但去官网看了下发现这个东西也很久没有更新了,不过据说短小精悍,五脏俱全.SWT Designer不久前也被Google收购后重新整合进自己的产品中,然后开源了,现在名字叫:WindowBuilder Pro,看上去界面组件很丰富强

Go语言开发Windows应用

当第一次看到Go程序在windows平台生成可执行的exe文件,就宣告了windows应用也一定是Go语言的战场.Go不是脚本语言,但却有着脚本语言的轻便简单的特性.相较于php和python之类以服务器控制台为主要战场的脚本语言来说,Go语言是真正的圆了"动态语言的应用开发梦". Windows Api Windows桌面应用依赖于win api,画出各种应用界面和控件本质上就是调用windows提供的api.Go开发Windows App要做的第一件事情就是封装这些windows

新手问个简单的图形界面程序

问题描述 编译没有问题,但是运行出现一对异常,希望高手能帮忙看看代码如下:importjava.awt.*;classTestextendsFrame{publicTest(){super("UserLogin");this.setLocation(300,240);this.setSize(280,120);this.setBackground(Color.lightGray);this.add(newLabel("userid"));this.add(newTe

Java图形界面程序编辑

问题描述 编写图形界面的程序,接收用户输入的一个字符串和一个字符,将字符串中出现的所有改字符删除,打印输出新生成的结果字符串. 解决方案 import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.ArrayList;import java.util.Collection

使用Python开发windows GUI程序入门实例_python

今天终于可以用wxPython开发GUI程序了,非常高兴.把其中的一些注意点写下来以供参考.在windows XP平台下,首先需要做以下环境的配置: 1. 首先是安装python ,安装完之后将python/bin所在目录添加到path中. 2. 安装wxPython, 此时要注意wxPython的版本要与前面python的版本一致. 3. 安装py2exe, 这是windows平台下一个非常好的python程序发布工具,可以将python程序编译成exe而脱离python环境执行.做完上面的安

VBS脚本也有GUI图形界面 日志清除功能_vbs

使用方法:将下面的代码保存为rizhi.vbs双击运行即可,如果不行可能是杀毒软件的问题.可以搜索下.以前提供过解决方法. 复制代码 代码如下: set ie=wscript.createobject("internetexplorer.application","event_") '创建ie对象' ie.menubar=0 '取消菜单栏' ie.addressbar=0 '取消地址栏' ie.toolbar=0 '取消工具栏' ie.statusbar=0 '取消

C#开发windows Mobile移动设备程序找不到设备本地文件的根目录

问题描述 C#开发windowsMobile系统移动设备的一个程序,在一个操作中需要打开移动设备中的一个文件,用OpenFileDialog.InitialDirectory设置开发对话框的文件目录,但总是默认打开移动设备下的MyDocuments文件夹,怎样都获取不到MyDocuments的上一级,因为供用户选择的文件是在MyDocuments文件夹的上一级当中的,也就是"我的设备"下,它移动设备插在电脑上也是默认显示的MyDocuments下的存储目录,但在移动设备的一个软件程序中