我想在窗口或面板中创建 3 个部分。所有 3 个部分都应该有可能由用户调整大小,并在用户更改主窗口大小时自动调整大小。它类似于将 3 个面板添加到垂直框大小器中,但用户可以调整所有三个部分的大小。我最多可以将 2 个面板添加到 wxSplitterWindow。
我使用 C++、wxWidgets 和 wxFormBuilder。
我想创建一个应用程序,但应用程序将使用图标(位图)来处理某些菜单按钮和其他内容.我想将我的应用程序保存为一个简单的单独的exe文件,这意味着我将以某种方式将所有图标嵌入到应用程序中(Windows上的EXE),这样我就可以加载位图而无需任何外部文件.
有谁知道我怎么做到这一点?
只是其他一些信息:我正在使用wxWidgets,目前使用的是MSVC,如果可能的话,我更喜欢使用跨编译器/跨平台的方法.
提前致谢!
我一直在探索Erlang的wx模块和本教程.我之前没有使用过wxwidgets,所以也许这就是它的完成方式,但这段代码对我来说真的很糟糕:
%% create widgets
T1001 = wxTextCtrl:new(Panel, 1001,[]),
ST2001 = wxStaticText:new(Panel, 2001,"Output Area", []),
B101 = wxButton:new(Panel, 101, [{label, "&Countdown"}]),
B102 = wxButton:new(Panel, ?wxID_EXIT, [{label, "E&xit"}]),
wxFrame:show(Frame),
Run Code Online (Sandbox Code Playgroud)
人们是否真的必须在创建小部件时为其分配小部件ID?在窗口小部件ID之后命名指向窗口小部件的变量是否正常?
我在使用 mingw 的 Windows 上,当我使用以下内容尝试编译我的 wxWidgets 代码时
g++ main.cpp `wx-config --libs` `wx-config --cxxflags`
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
g++: `wx-config: No such file or directory
g++: `wx-config: No such file or directory
cc1plus.exe: error: unrecognized command line option "-flibs`"
cc1plus.exe: error: unrecognized command line option "-fcxxflags`"
Run Code Online (Sandbox Code Playgroud)
而且我不知道该怎么做才能使 g++ 与 wx-config 一起玩得很好
请帮忙,谢谢。
我的程序打开一个基于wxFrame的窗口和多个无模式和无父对话的基于wxDialog的窗口.除了基于wxDialog的窗口始终位于基于wxFrame的窗口之外,它一切都很好用.
我知道wxDIALOG_NO_PARENT,我正在使用它.当我关闭wxFrame时,对话框保持打开状态,因此他们肯定没有将wxFrame窗口作为父窗口.
(如果重要的话,我正在使用C++,wxWidgets 2.8.something,并在Ubuntu Linux上运行.我的程序还没有准备好在任何其他平台上编译,所以我还没有在其他平台上测试它.)
我希望所有窗口完全独立运行,因此用户可以使用wxFrame窗口以及wxDialog窗口.谁能指出我正确的方向?
是否可以将wx.ListCtrl列中的所有值(项)作为列表获取?
我可以在文档中看到你可以得到一个指定的项目,但不是整个列,GetValue()也不工作,任何帮助??
由于某种原因,我的sizer.Clear()似乎无法正常工作。
据我从文档中了解到它应该可以工作。
我做错了什么导致这种行为吗?
import wx
import os
import sys
import time
import string
import urllib2
class MainWindow(wx.Frame):
def __init__(self, parent, id=wx.ID_ANY, title="", pos=wx.DefaultPosition,
size=wx.DefaultSize, style=wx.MINIMIZE_BOX | wx.CLOSE_BOX | wx.RESIZE_BORDER | wx.SYSTEM_MENU | wx.CAPTION):
wx.Frame.__init__(self, parent, id, title, pos, size, style)
panel = wx.Panel(self)
sizer = wx.BoxSizer(wx.VERTICAL)
panel.SetSizer(sizer)
self.sizer = sizer
self.panel = panel
self.ShowLoginBox()
def ShowLoginBox(self):
sizer = wx.FlexGridSizer(rows=4, cols=2, hgap=15, vgap=10)
sizer.AddGrowableCol(1, 1)
login_url = wx.TextCtrl(self.panel, 1, size=(150, -1))
label_url = wx.StaticText(self.panel, -1, "URL:")
sizer.Add(label_url, 0, wx.LEFT …Run Code Online (Sandbox Code Playgroud) 我的配置:
我似乎无法正确使用 UseAppInfo。我不想要路径中的应用程序名称,只是可执行文件的路径。我正在尝试这个:
wxStandardPaths::Get().UseAppInfo(wxStandardPaths::AppInfo_None);
wxString strExe = wxStandardPaths::Get().GetExecutablePath();
Run Code Online (Sandbox Code Playgroud)
strExe 包含完整路径和可执行文件名称,尽管它上面一行的 UseAppInfo 中有选项 AppInfo_None。我知道我正在从 Get() 获取一个实例,该实例似乎没有在下一行中使用。文档说通过 wxStandardPaths::Get() 使用 wxStandardPaths。
我也尝试了以下方法,但这也不起作用(令人惊讶的是它不会崩溃并且确实给了我包括应用程序名称的完整路径):
wxStandardPaths &path = wxStandardPaths::Get();
path.UseAppInfo(wxStandardPaths::AppInfo_None);
wxString strExe = path.GetExecutablePath();
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我尝试在Erlang中使用wxWidget在窗口中绘制一条线.我试过了:
wx:new(),
Frame = wxFrame:new(wx:null(), ?wxID_ANY, "Hello"),
wxDC:drawLine(50,50),
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
undefined function wxDC:drawLine/2
Run Code Online (Sandbox Code Playgroud)
我在这里阅读文档,但我不明白如何做到这一点:
我正在尝试使用Codeblocks 16.01,wxWidgets 3.1.0和MinGW学习使用C++的GUI编程,当我在Codeblocks中启动wxWidget向导时,我可以选择我的应用程序类型是基于对话框还是基于框架.
我的问题是:基于对话和框架的应用程序是什么意思?有什么不同?