标签: wxwidgets

如何使用wx在mac osx上设置菜单栏图标

我找不到任何关于如何使用wx在OSX上创建菜单栏图标的指针.我原本以为wxTaskBarIcon类会这样做,但实际上它在Dock上创建了一个图标.在Windows上,wxTaskBarIcon创建一个Systray图标和相关的菜单,我认为在mac osx上它会创建一个菜单栏图标,我猜不会.

macos wxwidgets wxpython

5
推荐指数
1
解决办法
4164
查看次数

将Excel数据加载到Linux/wxWidgets C++应用程序中?

我正在使用wxWidgets来编写跨应用程序.在其中一个应用程序中,我需要能够从Microsoft Excel(.xls)文件加载数据,但我也需要在Linux上工作,所以我假设我不能使用OLE或Windows上的任何技术.

我看到有很多开源程序可以读取excel文件(OpenOffice,KOffice等),所以我想知道是否有一些我可以使用的库?

它需要支持的Excel文件是非常简单的直表格数据.除了列/行位置和数据本身之外,我不需要提取任何格式.

c++ excel wxwidgets

5
推荐指数
1
解决办法
2485
查看次数

wxPython中不可编辑的文本框

如何在wxPython中创建一个不带游标的不可编辑文本框来转储文本?

python wxwidgets textbox wxpython

5
推荐指数
1
解决办法
3876
查看次数

是否有类似Visual Studio的工具为Python创建GUI?

我的女朋友问我是否有一个工具(实际上是一个IDE)可以让她直观地创建她的GUI,并且可以轻松地编辑与GUI相关的事件相关的功能.

例如,她想要双击她刚刚创建的按钮,并立即查看(和编辑)与该按钮的点击事件相关联的代码.我相信这就是她在Visual Studio中所做的.

该工具包无关紧要.她只想要这个功能.

是否有一些工具可以实现这一目标?

谢谢.

编辑:使示例看起来大胆.似乎没有人在看它,这是一个重要的要求.

python gtk qt wxwidgets visual-studio

5
推荐指数
2
解决办法
2万
查看次数

如何确保将wxFrame带到前台?

我有一个wxFrame接收事件.每当一个事件进来时,我希望将帧带到前台.

我目前正在使用:

my_frame->SetFocus();
Run Code Online (Sandbox Code Playgroud)

但这似乎不适用于最小化的帧.如何将框架设置为活动窗口并将其置于前面?

或者,是否有一种闪烁标题的方法?

wxwidgets focus set

5
推荐指数
1
解决办法
3650
查看次数

在Eclipse中使用Eclipse有wiwidgets的gui设计师吗?

我想使用C++和wxWidgets构建一个GUI应用程序.问题是我找不到要使用GUI(表单设计器)的IDE.我希望eclipse有一些像QT设计师这样的东西.

任何解决方案

c++ user-interface wxwidgets designer

5
推荐指数
2
解决办法
7261
查看次数

如何将从glReadPixels捕获的屏幕截图绘制到wxWidgets对话框/面板

我有一个OpenGL窗口和一个wxWidget对话框.我想将OpenGL镜像到对话框中.所以我打算做的是:

  1. 捕获opengl的屏幕截图
  2. 将其显示在wxwidgets对话框中.

任何的想法?

更新:这是我目前使用glReadPixels的方式(我也暂时使用FreeImage保存到BMP文件,但如果有办法直接将它传递给wxImage,我希望删除文件保存)

// Make the BYTE array, factor of 3 because it's RBG.
BYTE* pixels = new BYTE[ 3 * width * height];

glReadPixels(0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, pixels);

// Convert to FreeImage format & save to file
FIBITMAP* image = FreeImage_ConvertFromRawBits(pixels, width, height, 3 * width, 24, 0x0000FF, 0xFF0000, 0x00FF00, false);
FreeImage_Save(FIF_BMP, image, "C:/test.bmp", 0);

// Free memory
delete image;
delete pixels;
Run Code Online (Sandbox Code Playgroud)

c++ opengl wxwidgets glreadpixels

5
推荐指数
1
解决办法
1927
查看次数

使用动态内容刷新wxGrid

这似乎并不像我希望的那么简单:

使用wxWidgets(2.8稳定系列),我有一个wxGrid(不是子类),自定义"数据适配器"作为wxGridTableBase派生类.

wxGrid* grid = new wxGrid (this, ID_TABLE);
grid->SetTable (new TableAdapter (foo, bar, baz));
grid->EnableEditing (false);
sizer->Add(grid, wxSizerFlags (1).Expand());
Run Code Online (Sandbox Code Playgroud)

我找不到的"简单"的东西是在底层数据模型发生变化时刷新网格的一种方法.简单地调用wxWindow :: Update(pGrid->Update())显然不足以让网格调用底层的wxGridTableBase实现?

wxGrid* const grid = (wxGrid* const) FindWindow (ID_TABLE);
if (NULL != grid) {
     grid->Update ();
     grid->AutoSizeColumns ();
}
Run Code Online (Sandbox Code Playgroud)

特别是,此网格充当列表,并且将通过相同或(可能)另一个进程异步添加和删除行 - 它是可由多个联网系统中的任何一个更新的共享数据列表.网格/列表本身实际上是只读的; 其他控件用于添加和删除项,每行都有一个布尔类型属性,也可以切换.

似乎新行未添加到视图中,删除行将导致wx绘图代码中的间歇性SEGV.

由于动态/异步更新机制,我希望避免不断删除并重新添加网格到窗口,因为我确信会导致各种闪烁和肮脏......所以,我会摔倒如果我绝对必须这样做,那就回去尝试一些类似暴力的东西,但我更倾向于避免它.

不幸的是,尽管被标记为"稳定版本",但wxGrid文档似乎主要由Yet to be written标签组成.

更新: 我开始怀疑这是容器布局问题.在绘制网格时,网格的底部(最后一行)实际上可以围绕wxFrame窗口部分的wxStaticBox框架以及框架状态行的一部分重叠.添加和删​​除行似乎不会强制重新布局容器; 我正在尝试打电话Layout等.理想情况下,这应该是一个滚动区域,但wxGrid 仍应在其包含的Sizer中"约束".

布局实际上包含一个静态框,其中包含一个垂直框,第一个元素是一个水平的按钮框,然后是网格,如下所示:

    --[ Static Box ]------------------------
   |                                        |
   | [Button] [Button] [Button]             |
   |                                        |
   |  ----------------------------------- …
Run Code Online (Sandbox Code Playgroud)

c++ wxwidgets

5
推荐指数
1
解决办法
7397
查看次数

wxWidgets和Golang

我想在wxWidgets中使用多操作系统GUI在Go中开发程序,我的开发环境是WinXP x86。

我想使用wxWidgets Go包装器wxGo,但是文档非常简洁,该项目似乎已经停滞了2年。

我在go get github.com/JeroenD/wxGo和时遇到了一些错误go install github.com/JeroenD/wxGo

结果go get github.com/JeroenD/wxGo

package github.com/JeroenD/wxGo
    imports github.com/JeroenD/wxGo
    imports github.com/JeroenD/wxGo: no Go source files in C:\Documents and Settings\dell\Mes documents\gopath\src\github.com\JeroenD\wxGo
Run Code Online (Sandbox Code Playgroud)

结果go install github.com/JeroenD/wxGo

can't load package: package github.com/JeroenD/wxGo: no Go source files in C:\Documents and Settings\dell\Mes documents\gopath\src\github.com\JeroenD\wxGo
Run Code Online (Sandbox Code Playgroud)

我试图遵循JeroenD的github中的Building.txt文档。第一次,我下载并安装了wxWidgets,示例代码能够编译(使用MinGW),但是我无法从源代码编译wxWidgets库。第二次,我下载并安装了wsPack,并且已经编译了libs / dll。在这里,问题是我无法编译wxWidgets示例。

如JeroenD的github上的Buiding.txt文档所述,我安装了SWIGWIN,但未从源代码进行编译,因为SWIG现在支持Go(来自SWIG的文档)。但是现在,我不知道如何使用包装器(wxGo),wxWidgets dll / libs和SWIG。我想我读过SWIG需要* .i文件来进行语言到另一个的绑定,但是我在wxWidgets文件夹中找不到任何文件,也许我必须从另一个wxWidgets绑定中获取这些文件(wxLua和wxPython在它们的目录中包含了这些文件。回购)。

我的目标只是让wxWidgets库与Go一起使用,以便能够在wxWidgets中编写多操作系统GUI。我感到惊讶的是,没有人发布JeroenD软件包的问题,​​也不希望让wxWidgets与Go一起使用。

您可能会问,用go-gtk构建gtk GUI并不是解决方案,因为在我的项目中需要具有看起来像OS本机的多OS GUI(如果您有看起来像Native的Multi-OS GUI库,简单易用,请告诉我)。

user-interface wxwidgets install go wxgo

5
推荐指数
1
解决办法
6230
查看次数

在wxPython中展开FoldPanelBar时不会出现滚动条

当折叠板展开时,它会越过框架并且不会出现滚动条.我尝试使用ScrolledPanel,但没有帮助.知道我在这里缺少什么吗?

import wx
from wx.lib import scrolledpanel
import wx.lib.agw.foldpanelbar as fpb
import wx.lib.scrolledpanel as sp

class MyPanel(sp.ScrolledPanel):

    def __init__(self, parent):
        sp.ScrolledPanel.__init__(self, parent=parent, size=parent.GetSize(), style = wx.ALL|wx.EXPAND)
        #self.SetAutoLayout(1)
        self.SetupScrolling()
        ##self.boxSizer = wx.BoxSizer(wx.VERTICAL)###
        csStyle = fpb.CaptionBarStyle()
        csStyle.SetFirstColour(wx.Colour(190, 190, 190, 255))
        csStyle.SetSecondColour(wx.Colour(167, 232, 146, 255))
        csStyle.SetCaptionFont(wx.Font(9, wx.DEFAULT, wx.NORMAL, wx.BOLD))

        m_pnl = fpb.FoldPanelBar(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize,
                            fpb.FPB_VERTICAL)

        item = m_pnl.AddFoldPanel("Set 1", collapsed=True, cbstyle=csStyle)

        self.listContainer = wx.ListCtrl(item, style=wx.LC_REPORT)
        self.listContainer.InsertColumn(0, 'Column1', width=250)
        self.listContainer.InsertColumn(1, 'Column2', width=150)
        self.listContainer.InsertColumn(2, 'Column3')

        m_pnl.AddFoldPanelWindow(item, self.listContainer)
        btnAutoFix = wx.Button(item, wx.ID_ANY, "Go", size=(50,-1))
        m_pnl.AddFoldPanelWindow(item, …
Run Code Online (Sandbox Code Playgroud)

python wxwidgets wxpython

5
推荐指数
1
解决办法
235
查看次数