I''m still learning wxWidgets, so this is probably basic. I have some data that I''m trying to display in a wxListCtrl. The ListCtrl is in a Box Sizer that is stacked in a main box sizer. the list control is the only control in the specific box sizer containing it. The problem is that the sizer is squeezing the width of the list control down to the point that only a column and a half are visible without horizontal scrolling. The form is actually wide enough that it should be able to display all the columns. How do I tell the layout to expand the width of the wxListCtrl? Here''s my code for the ListCtrl: #Put the item list on the screen @itemSizer = Wx::BoxSizer.new(Wx::HORIZONTAL) @itemList = Wx::ListCtrl.new(self, -1, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, Wx::LC_REPORT | Wx::LC_HRULES | Wx::LC_VRULES) row = 0 @itemList.insert_column(0, "Date") @itemList.insert_column(1, "Start") @itemList.insert_column(2, "End") @itemList.insert_column(3, "Description") @itemList.insert_column(4, "Elapsed") @itemList.insert_column(5, "No Charge") @itemSizer.add(@itemList, 1, Wx::TOP | Wx::LEFT, 15) @mainSizer.add(@itemSizer, 1, Wx::ALIGN_LEFT | Wx::LEFT |Wx::BOTTOM, 15) Thanks in advance ---Michael -- Posted via http://www.ruby-forum.com/.
Hi Michael, my advice would be: 1) go to this page: http://wxruby.rubyforge.org/doc/sizer.html#Sizer_add and read it once or twice 2) go and fetch an evaluation copy of DialogBlocks here: http://www.anthemion.co.uk/dialogblocks/download.htm DialogBlocks flattens your learning curve a lot if you''re more of the learning by doing type of guy... And pay special attention to the Wx::EXPAND flag and the proportion parameter ;-) Christian. Michael Satterwhite wrote:> I''m still learning wxWidgets, so this is probably basic. >-- Posted via http://www.ruby-forum.com/.
Michael Satterwhite wrote:> The problem is that the sizer is squeezing the width of the list control > down to the point that only a column and a half are visible without > horizontal scrolling. The form is actually wide enough that it should be > able to display all the columns. > > How do I tell the layout to expand the width of the wxListCtrl? >Hard to be certain without seeing the whole context, but I''d guess you should be adding a Wx::GROW flag to the sizer#add calls. This tells the Sizer to expand that item to fill all the space in the non-main sizer direction. So, if the sizer''s vertical, adding Wx::GROW (or Wx::EXPAND, it''s a synonym), the listctrl will fill all the horizontal space available. A few random hints:> Here''s my code for the ListCtrl: > > #Put the item list on the screen > @itemSizer = Wx::BoxSizer.new(Wx::HORIZONTAL) >@itemSizer = Wx::HBoxSizer.new And, are you sure you need two sizers?> @itemList = Wx::ListCtrl.new(self, -1, > Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, > Wx::LC_REPORT | Wx::LC_HRULES | Wx::LC_VRULES) >@itemList = Wx::ListCtrl.new(self, :style => Wx::LC_REPORT|Wx::LC_HRULES|Wx::LC_VRULES) alex