打印

[一般问题] 请问Ruby可以编写界面化的程序吗?

请问Ruby可以编写界面化的程序吗?

以前熟悉Windows编程,编写窗口一类的程序。

请问用php?name=Ruby" onclick="tagshow(event)" class="t_tag">Ruby可以编写界面化的程序吗?是窗口方式的吗?还是网页形式的?
大概需要用到哪些类和方法呢?谢谢!

TOP

rails編寫網頁的多些,而且功能也比较强大

支持web开发!!
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
 建議是發展的基石,批評是前進的動力。大家來P吧,莫客氣 
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

TOP

类,方法

主要是基本的,string,array ,hash,等等
类 api里有介绍

api:http://api.rubyonrails.org/
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
 建議是發展的基石,批評是前進的動力。大家來P吧,莫客氣 
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

TOP

都可以。开发应用程序可以使用 Tk,开发Web应用可以直接用CGI

TOP

谢谢Hozaka,就是要找tk这样的界面化开发工具开发GUI,努力研究中。

TOP

再顶上去,请问Ruby/Tk可以编写listControl这样的多列列表这样的控件吗?有人知道吗?

TOP

谢谢楼上的各位哈!!最后我用的是Ruby+GTK2,开发出了在Windows运行良好的界面化程序,很好用!!

推荐使用Ruby+GTK2开发Windows的应用程序!!

TOP

这是一个tk的界面程序,有截图。



#!/usr/local/bin/ruby

require 'tk'
require 'tkafter'

$running = nil
$acctime = 0

def load
	if File.exists?('status.txt')
		File.open('status.txt', 'r') do |f|
			$acctime, $running = Marshal.load(f.read)
		end
		if $running
			$start.configure('text' => 'Stop')
			$after.start
		else
			$start.configure('text' => 'Start')
		end
		update_timer
	end
end

def save
	%(
	File.open('status.txt', 'w') do |f|
		f.write Marshal.dump([$acctime, $running])
	end)
end

def start
	if $running
		$acctime += Time.now - $running
		$start.configure('text' => 'Start')
		$running = nil
		$after.stop
		update_timer
	else
		$running = Time.now
		$start.configure('text' => 'Stop')
		$after.start
	end
	save
end

def reset
	$acctime = 0
	$running = nil
	$start.configure('text' => 'Start')
	$after.stop
	update_timer
end

def update_timer
	time = $acctime
	if $running
		time += Time.now - $running
	end
	h = time.to_i / 3600
	m = (time.to_i % 3600) / 60
	s = time.to_i % 60
	micro = ((time - time.to_i)*10).to_i
	time = sprintf("%02i:%02i:%02i.%1i", h, m, s, micro)
	$timer.configure('text' => time)
end

def setup_window
	root = TkRoot.new {title "Timer"}
	root.configure('background' => 'yellow')
	f = TkFont.new('size' => 20, 'weight' => 'bold')

	$timer = TkLabel.new(root) {
		text '00:00:00.0'
		font f
		background 'yellow'
		pack('pady' => 20, 'padx' => 20)
	}

	$start = TkButton.new(root) {
		text 'Start'
		pack('side'=>'left', 'expand'=>1, 'fill'=>'both')
		command {start()}
	}

	TkButton.new(root) {
		text 'Reset'
		pack('expand'=> 1, 'side'=>'right', 'fill'=> 'both')
		command {reset()}
	}
end

setup_window
$after = TkAfter.new(100, -1, proc{update_timer})
#load
Tk.mainloop


附件: 您所在的用户组无法下载或查看附件
=KK=

TOP

2008-12-02 10:34 Crawled by CCBot/1.0 (+http://www.commoncrawl.org/bot.html) @38.103.63.61