wxruby之文本控件

概括、StaticText实现label的功能,另外还有多行文本空间和富文本控件。

#coding=utf-8

require "wx"

BTN1_ID=10001

def gridframe(frame)
	label1=Wx::StaticText.new(frame,-1,"label控件就是StaticText",Wx::Point.new(100,50))
	#位置参数在title后面
	text1=Wx::TextCtrl.new(frame,-1,"这是文本控件",Wx::Point.new(100,100),Wx::Size.new(200,-1))
	#单行文本的高度设置为默认就可以了
	evt_text(text1.get_id()){|evt|on_evt_text(evt,frame)} #所有的事件
	text1.evt_char{|char|on_evt_char(char,frame)} #当向文本框中输入字符时触发此事件
	
	text2=Wx::TextCtrl.new(frame,-1,"多行文本控件",Wx::Point.new(100,150),Wx::Size.new(200,100),Wx::TE_MULTILINE)
	#事件和单行文本控件类似
	
	text3=Wx::TextCtrl.new(frame,-1,"富文本控件",Wx::Point.new(350,150),Wx::Size.new(200,150),Wx::TE_MULTILINE|Wx::TE_RICH)
	font= Wx::Font.new(12,Wx::ROMAN, Wx::ITALIC, Wx::BOLD, true) #-1为默认参数
	text3.set_style(0,12,Wx::TextAttr.new(Wx::Colour.new("BLUE"),Wx::Colour.new("RED"), font))
	#前景色,背景色,字体
end

def on_evt_text(evt,frame)
	dlg=Wx::MessageDialog.new(frame,evt.to_s,"event on text1",Wx::OK)
	dlg.show_modal()
end

def on_evt_char(char,frame)
	dlg=Wx::MessageDialog.new(frame,char.to_s,"char input!",Wx::OK)
	dlg.show_modal()
	char.skip() #text的char事件必须要调用此函数,输入的char才会作用于文本框
end

class BtnFrame < Wx::Frame
	def initialize(title,pos,size)
		super(nil,-1,title,pos,size)
		center(Wx::BOTH)
		panel=Wx::Panel.new(self,-1,Wx::DEFAULT_POSITION,Wx::DEFAULT_SIZE)
		gridframe(panel)
	end
end

class TextApp < Wx::App
  def on_init
    topframe = BtnFrame.new("btn example",Wx::DEFAULT_POSITION,Wx::Size.new(600,400))
		topframe.show(true)
  end
end

btnapp = TextApp.new
btnapp.main_loop



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值