2011-09-26 4 views
0

J'ai une situation sur wxRuby en utilisant Wx::RadioBox.Problème sur les radioboxes avec wxRuby

Mes radioboxes ont des renseignements généraux laid & frontières comme ça:

My ugly RadioBoxes

Contrairement à la démo qui a obtenu un meilleur style quand je le lance:

enter image description here

ici est mon code :

#!/usr/bin/env ruby 
# coding: utf-8 

require 'wx' 
include Wx 

class MainFrame < Frame 
    def initialize() 
    super(nil, :title => "Title", :size => [ 480, 400 ]) 
     #sizer = Wx::BoxSizer.new(Wx::VERTICAL) 
     sampleList = ["Choice1","Choice2","Choice3"] 
    rb = Wx::RadioBox.new(self, -1, "Title1", Wx::Point.new(15,20), Wx::Size.new(100,200), sampleList, 1, Wx::RA_SPECIFY_COLS, DEFAULT_VALIDATOR, "Name1") 
     evt_radiobox(rb) {|event, other| on_debug(sampleList[event.get_int()].to_s(), rb.name.to_s())} 
     #sizer.add(rb, 0, Wx::ALL, 20) 
    rb2 = Wx::RadioBox.new(self, -1, "Title2", Wx::Point.new(150,20), Wx::Size.new(100,200), sampleList, 1, Wx::RA_SPECIFY_COLS, DEFAULT_VALIDATOR, "Name2") 
     evt_radiobox(rb2) {|event| on_debug(sampleList[event.get_int()].to_s(), rb2.name.to_s())} 
     #sizer.add(rb2, 0, Wx::ALL, 20) 
     #set_sizer(sizer) 
    #sizer.fit(self) 
     #sizer.layout() 
    end 

    # show a 'Debug' dialog 
    def on_debug(*params) 
    Wx::message_box("Debug :\n\r\n\r#{params.inspect}", 
     "Debug Box", 
     ICON_INFORMATION|OK) 
    end 
end 


class MyApp < App 
    def on_init 
    frame = MainFrame.new 
    frame.show 
    end 
end 
MyApp.new.main_loop() 

Et voici le code par défaut:

  • samples/bigdemo/wxRadioBox.rbw
  • Il semble de que ce code est différent de celui de votre wxruby installent présent dans C:\[your Ruby Install]\lib\ruby\gems\1.9.1\gems\wxruby-ruby19-2.0.1-x86-mingw32\samples\bigdemo

Toute aide sera très appréciée parce que je vraiment ne sais pas pourquoi l'aspect est tellement différent?

Répondre

0

Problème résolu en créant une couleur d'arrière-plan par défaut sur le châssis principal: self.set_background_colour(Wx::NULL_COLOUR)

enter image description here

et est le code ici:

#!/usr/bin/env ruby 
# coding: utf-8 

require 'wx' 
include Wx 

class MainFrame < Frame 
    def initialize() 
    super(nil, :title => "Title", :size => [ 480, 400 ]) 
     #sizer = Wx::BoxSizer.new(Wx::VERTICAL) 
    self.set_background_colour(Wx::NULL_COLOUR) 
     sampleList = ["Choice1","Choice2","Choice3"] 
    rb = Wx::RadioBox.new(self, -1, "Title1", Wx::Point.new(15,20), Wx::Size.new(100,200), sampleList, 1, Wx::RA_SPECIFY_COLS, DEFAULT_VALIDATOR, "Name1") 
     evt_radiobox(rb) {|event, other| on_debug(sampleList[event.get_int()].to_s(), rb.name.to_s())} 
     #sizer.add(rb, 0, Wx::ALL, 20) 
    rb2 = Wx::RadioBox.new(self, -1, "Title2", Wx::Point.new(150,20), Wx::Size.new(100,200), sampleList, 1, Wx::RA_SPECIFY_COLS, DEFAULT_VALIDATOR, "Name2") 
     evt_radiobox(rb2) {|event| on_debug(sampleList[event.get_int()].to_s(), rb2.name.to_s())} 
     #sizer.add(rb2, 0, Wx::ALL, 20) 
     #set_sizer(sizer) 
    #sizer.fit(self) 
     #sizer.layout() 
    end 

    # show a 'Debug' dialog 
    def on_debug(*params) 
    Wx::message_box("Debug :\n\r\n\r#{params.inspect}", 
     "Debug Box", 
     ICON_INFORMATION|OK) 
    end 
end 


class MyApp < App 
    def on_init 
    frame = MainFrame.new 
    frame.show 
    end 
end 
MyApp.new.main_loop()