簡體   English   中英

如何確定wx.grid.Grid的大小,以便它不包含其他控件?

[英]How to correclty size a wx.grid.Grid so it doesn't cover other controls?

我試着在sizer中正確使用wx.grid,但是網格正在逃逸是sizer的一部分。 我希望wx.grid保持在網格的一部分。 我希望如果需要的話我最終會用滾動條。

我在BoxSizer中有兩個控件,一個是wx.grid.Grid,另一個是wx.TextCtrl。 網格的行數多於可用空間中的行數。

問題是網格覆蓋了textctl,而不是停留在textctl的頂部。 如果網格大於窗口大小,則會顯示滾動條


import wx
import wx.grid

app = wx.App(False)
frame = wx.Frame(None, wx.ID_ANY, "Grid Test", size=(1000, 1200))
panel  = wx.Panel(frame, wx.ID_ANY, size=(-1, -1))

mygrid = wx.grid.Grid(panel, size=(-1, -1))

num_rows = 50
mygrid.CreateGrid(num_rows, 10)

for i in range(num_rows):
    mygrid.SetCellValue(i, 0, "Yes")
    mygrid.SetCellValue(i, 1, "This is a DUT")
    mygrid.SetCellValue(i, 2, "TP-Link TL-WR841N")
    mygrid.SetCellValue(i, 3, "802.11ax (2.4 GHz)")
    mygrid.SetCellValue(i, 4, "WPA2-PSK with AES")
    mygrid.SetCellValue(i, 5, "11 - 2412 Mhz")
    mygrid.SetCellValue(i, 6, "160 MHz")
    mygrid.SetCellValue(i, 7, "Fail - Iperf")
    mygrid.SetCellValue(i, 8, "%daaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" % i)
    mygrid.SetCellValue(i, 9, "%dbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" % i)

mygrid.SetRowLabelSize(0)
mygrid.AutoSizeColumns(True)
mygrid.EnableDragRowSize(False)
mygrid.AutoSize()

tc = wx.TextCtrl(panel, size=(-1, -1), style=wx.TE_MULTILINE | wx.TE_READONLY | wx.TE_RICH2)

sizer = wx.BoxSizer(wx.VERTICAL)
sizer.AddSpacer(10)
sizer.Add(mygrid, 2, wx.EXPAND | wx.LEFT | wx.RIGHT, 50)
sizer.AddSpacer(20)
sizer.Add(tc, 1, wx.EXPAND | wx.LEFT | wx.RIGHT, 50)
sizer.AddSpacer(10)

sizer.SetSizeHints(panel)
panel.SetSizerAndFit(sizer)

frame.Show()
app.MainLoop()

這是在運行:

Ubuntu 18.04.2

libwxbase3.0-0v5 (3.0.4+dfsg-3)
libwxgtk3.0-gtk3-0v5 (3.0.4+dfsg-3)
python-wxgtk3.0 (3.0.2.0+dfsg-7)
python-wxversion (3.0.2.0+dfsg-7)

libgtk-3-0 (3.22.30-1ubuntu2)

只需給grid一個大小。
例如

mygrid = wx.grid.Grid(panel, size=(1000, 600))

在此輸入圖像描述

編輯:

我相信除非網格有大小或MinSize,否則sizer會感到困惑。

所以要么給它一個尺寸(如上)

要么

給它一個Minsize即

mygrid.SetMinSize((400,600))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM