- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
正如听起来的那样。我在 Wx.Frame
中有一些动态创建的按钮,我希望父框架在添加新按钮时增加高度。高度已经通过按钮总数乘以等于每个按钮高度的整数来获取,但我不知道如何让框架在添加新按钮时根据该值更改大小。
作为一个附带问题,我当前更新按钮的方法会产生令人讨厌的闪烁,我想知道是否有人有任何解决该问题的想法。
import wx
import mmap
import re
class pt:
with open('note.txt', "r+") as note:
buf = mmap.mmap(note.fileno(), 0)
TL = 0
readline = buf.readline
while readline():
TL += 1
readlist = note.readlines()
note.closed
class MainWindow(wx.Frame):
def __init__(self, parent, title):
w, h = wx.GetDisplaySize()
self.x = w * 0
self.y = h - bdepth
self.container = wx.Frame.__init__(self, parent, title = title, pos = (self.x, self.y), size = (224, bdepth), style = wx.STAY_ON_TOP)
self.__DoButtons()
self.Show(True)
def __DoButtons(self):
for i, line in enumerate(pt.readlist):
strip = line.rstrip('\n')
todo = strip.lstrip('!')
self.check = re.match('!', strip)
self.priority = re.search('(\!$)', strip)
if self.check is None and self.priority is None:
bullet = wx.Image('bullet.bmp', wx.BITMAP_TYPE_BMP)
solid = wx.EmptyBitmap(200,64,-1)
dc = wx.MemoryDC()
dc.SelectObject(solid)
solidpen = wx.Pen(wx.Colour(75,75,75),wx.SOLID)
dc.SetPen(solidpen)
dc.DrawRectangle(0, 0, 200, 64)
dc.SetTextForeground(wx.Colour(255, 255, 255))
dc.DrawBitmap(wx.BitmapFromImage(bullet, 32), 10, 28)
dc.DrawText(todo, 30, 24)
dc.SelectObject(wx.NullBitmap)
hover = wx.EmptyBitmap(200,64,-1)
dc = wx.MemoryDC()
dc.SelectObject(hover)
hoverpen = wx.Pen(wx.Colour(100,100,100),wx.SOLID)
dc.SetPen(hoverpen)
dc.DrawRectangle(0, 0, 200, 64)
dc.SetTextForeground(wx.Colour(255, 255, 255))
dc.DrawBitmap(wx.BitmapFromImage(bullet, 32), 10, 28)
dc.DrawText(todo, 30, 24)
dc.SelectObject(wx.NullBitmap)
bmp = solid
elif self.priority is None:
checkmark = wx.Image('check.bmp', wx.BITMAP_TYPE_BMP)
checked = wx.EmptyBitmap(200,64,-1)
dc = wx.MemoryDC()
dc.SelectObject(checked)
checkedpen = wx.Pen(wx.Colour(50,50,50),wx.SOLID)
dc.SetPen(checkedpen)
dc.DrawRectangle(0, 0, 200, 50)
dc.SetTextForeground(wx.Colour(200, 255, 0))
dc.DrawBitmap(wx.BitmapFromImage(checkmark, 32), 6, 24)
dc.DrawText(todo, 30, 24)
dc.SelectObject(wx.NullBitmap)
bmp = checked
else:
exclaim = wx.Image('exclaim.bmp', wx.BITMAP_TYPE_BMP)
important = wx.EmptyBitmap(200,64,-1)
dc = wx.MemoryDC()
dc.SelectObject(important)
importantpen = wx.Pen(wx.Colour(75,75,75),wx.SOLID)
dc.SetPen(importantpen)
dc.DrawRectangle(0, 0, 200, 50)
dc.SetTextForeground(wx.Colour(255, 180, 0))
dc.DrawBitmap(wx.BitmapFromImage(exclaim, 32), 6, 24)
dc.DrawText(todo, 30, 24)
dc.SelectObject(wx.NullBitmap)
importanthover = wx.EmptyBitmap(200,64,-1)
dc = wx.MemoryDC()
dc.SelectObject(importanthover)
importanthoverpen = wx.Pen(wx.Colour(100,100,100),wx.SOLID)
dc.SetPen(importanthoverpen)
dc.DrawRectangle(0, 0, 200, 50)
dc.SetTextForeground(wx.Colour(255, 180, 0))
dc.DrawBitmap(wx.BitmapFromImage(exclaim, 32), 6, 24)
dc.DrawText(todo, 30, 24)
dc.SelectObject(wx.NullBitmap)
bmp = important
b = wx.BitmapButton(self, i + 800, bmp, (10, i * 64), (bmp.GetWidth(), bmp.GetHeight()), style = wx.NO_BORDER)
if self.check is None and self.priority is None:
b.SetBitmapHover(hover)
elif self.priority is None:
b.SetBitmapHover(checked)
else:
b.SetBitmapHover(importanthover)
self.input = wx.TextCtrl(self, -1, "", (16, pt.TL * 64 + 4), (184, 24))
self.Bind(wx.EVT_TEXT_ENTER, self.OnEnter, self.input)
def OnClick(self, event):
button = event.GetEventObject()
button.None
print('cheese')
def OnEnter(self, event):
value = self.input.GetValue()
pt.readlist.append('\n' + value)
self.__DoButtons()
with open('note.txt', "r+") as note:
for item in pt.readlist:
note.write("%s" % item)
note.closed
bdepth = pt.TL * 64 + 32
app = wx.App(False)
frame = MainWindow(None, "Sample editor")
app.SetTopWindow(frame)
app.MainLoop()
最佳答案
据我所知,无法自动调整框架大小,但您可以使用 SetSize()
手动重置框架的大小
例如
w, h = self.GetClientSize()
self.SetSize((w, h + height_of_your_new_button))
为了以最小的麻烦获得所需的结果,您需要使用大小调整器,我认为没有充分的理由使用绝对定位。我还建议使用面板,它提供小部件之间的选项卡遍历和布局的跨平台一致性。
<小时/>关于python - WxPython - 添加新内容时调整 WxFrame 大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3740640/
我正在使用以下调用创建一个 wxFrame: new wxFrame(NULL,wxID_ANY,wxEmptyString,wxDefaultPosition,wxDefaultSize,wxCAP
我想要一个垂直滚动条贯穿框架(顶部 block )。我能够获得各个面板的垂直滚动条 - 这里的两个图都是 threads由相同的 class 绘制. 这是在gnuradio中设置顶部 block 的代
如何将图标(.ico 文件)添加到 wxFrame? 我在看 docs但找不到任何提及 icon . 谢谢! 最佳答案 凤凰wxpython: frame.SetIcon(wx.Icon("path/
我有一个 wxFrame接收事件。每当发生事件时,我都希望将框架置于前台。 我目前正在使用: my_frame->SetFocus(); 但这似乎不适用于最小化的帧。如何将框架设置为事件窗口并将其置于
我有一段非常简单的代码来为我的 wxFrame 设置三倍大的字体: MainWin::MainWin() : wxFrame(NULL, wxID_ANY,wxEmptyString,
我想创建关闭时不会被销毁的 wxFrame,这样我可以稍后再显示它们,并且即使它们被隐藏也可以继续更新它们。 我尝试使用 SetExtraStyle(wxWS_EX_BLOCK_EVENTS) 希望它
如何获取子对话框中的父wxFrame指针 我编写了一个程序来实现一些功能。我有一个 wxFrame、wxMenubar、wxScrolledWindow、wxListBox。通过点击菜单栏的一些菜单,
我一直在网上搜索并试图找出是否有可能在 wxWidgets 的实际 wxFrame 元素中捕获鼠标事件。各种消息来源说这是不可能的,应该使用 wxPanels 来捕获事件,是这样吗? 谢谢 最佳答案
我正在创建带有用户界面的简单 C++ 应用程序。我已经用所需的机制编写了自己的类,现在我必须使用 wxWidgets 显示它的一些组件。 MyApp 包含该类的对象,但在处理事件时,MyFrame 中
我有一个 wxDialog,我在其中打开了一个 wxFrame。现在我想知道 wxFrame 何时关闭,所以我可以在对话框调用者中做一些事情 [在框架上我修改了对话框中也存在的列表,我需要更新它(使用
正如听起来的那样。我在 Wx.Frame 中有一些动态创建的按钮,我希望父框架在添加新按钮时增加高度。高度已经通过按钮总数乘以等于每个按钮高度的整数来获取,但我不知道如何让框架在添加新按钮时根据该值更
我有一个 MainFrame,为了设置背景图片,我实现了自己的 OnPaint() 函数。 OnPaint(wxPaintEvent& roEvent) { if (!m_oBackgorun
我有一个从 wxFrame 派生的 MainFrame。该框架有一个自定义类的面板成员 m_panel,派生自 wxPanel。 我重载了 MainFrame 的 OnPaint() 函数来设置背景图
我有一个带有 3 个按钮的简单 wxFrame。在我按下 Tab 之后什么也没有发生。在论坛上我发现wxFrame应该可以正常处理Tab按钮事件,并在控件之间切换焦点。我尝试了 wxTAB_TRAVE
在 wxGTK 下,事件窗口没有从 IsActive() 返回真值。 我的软件有一个主窗口和一组工具窗口,都是从wxFrame派生出来的。当主窗口移动时,它会捕获移动事件并在所有工具窗口中调用位置方法
我正在尝试调试此代码,框架不会在按下“x”按钮时关闭,但是当我注释掉 wxTimer 时,我可以关闭它。谷歌搜索后我发现了这个 - http://wiki.wxpython.org/Timer我尝试将
我是 C++ 新手,也是 Codelite 新手,也是 wxCrafter 新手。我正在尝试构建一些 GUI 应用程序,但我对 C++ 中的对象传递感到困惑。我花了几个小时,我才明白一点。首先,要在
我的应用程序有一个 GUI,它首先读取一个初始化文件,然后决定有多少控制对象(例如,wxTextCtrl、wxToggleButton 等)需要添加到一个 wxFrame。当wxFrame上的对象过多
是否有可能使 wxFrame 对象表现得像模态对话框,因为创建 wxFrame 对象的窗口会停止执行,直到 wxFrame 对象退出? 我正在研究 small game并遇到了以下问题。我有一个托管主
我正在使用 wxGlade 设计器为小型应用程序生成 GUI。它生成一个继承自 wxFrame 的类,它是主应用程序窗口。为了方便维护,我想避免在这个生成的类中编写额外的代码。 但所有使用 wxGla
我是一名优秀的程序员,十分优秀!