是否可以使它在选择菜单项时不关闭?
例如,菜单由复选框组成,我想在关闭菜单之前选择几个项目:
<ContextMenu>
<MenuItem Header="Check_1" IsCheckable="True"/>
<MenuItem Header="Check_2" IsCheckable="True"/>
<MenuItem Header="Check_3" IsCheckable="True"/>
</ContextMenu>
是否可以使它在选择菜单项时不关闭?
例如,菜单由复选框组成,我想在关闭菜单之前选择几个项目:
<ContextMenu>
<MenuItem Header="Check_1" IsCheckable="True"/>
<MenuItem Header="Check_2" IsCheckable="True"/>
<MenuItem Header="Check_3" IsCheckable="True"/>
</ContextMenu>
我正在使用 wxWidgets 库版本 3.0.2 开发 Cmake 项目,当我在 Linux 上构建可执行文件时,我得到以下信息:
undefined reference to `wxGrid::...`
undefined reference to `wxPGProperty::...`
и тогдалее по всем используемым функциям
早先出现了类似的错误,但是通过在搜索中添加 wxWidgeta 模块 - adv 和 propgrid 来消除它们。该项目由几个库和一个可执行文件组成,这些库的构建没有问题,尽管其中没有使用这些控件。可执行文件的 CMakeList:
project(Test)
set(HEADER CMakeLists.txt
test.h
myMath.h)
set(SOURCE test.cpp
myMath.cpp)
find_package(wxWidgets COMPONENTS core base adv propgrid )
include(${wxWidgets_USE_FILE})
add_executable( ${PROJECT_NAME} ${HEADER} ${SOURCE} )
target_include_directories( ${PROJECT_NAME} PRIVATE
${TEST_LIB1_DIR}
${TEST_LIB2_DIR})
target_link_libraries( ${PROJECT_NAME}
${wxWidgets_LIBRARIES}
Lib1
Lib2 )
set_target_properties( ${PROJECT_NAME} PROPERTIES
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${TEST_DIR}
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${TEST_DIR} )
我只是无法弄清楚可能是什么问题(可能在 CMakeList 中)。我在 Internet 上发现了类似的问题,但这些问题的答案归结为 Linux 上存在这些库(adv 和 propgrid)。是的,它们在文件夹中:
wxWidgets-3.0.2/debug/lib
有一个wxPropertyGrid
包含不同字段的表(wxStringProperty
、wxUIntProperty
等wxBoolProperty
)。
Get/SetFocus()
他们没有方法。
我可以以编程方式设置焦点吗?
我正在使用 wxWidgets 库开发一个 Cmake 项目(由几个子项目组成),由于以下原因,一些项目无法构建:
/usr/local/lib/libwx_baseu-3.0.a(baselib_filename.o):创建共享对象时不能使用符号'_ZN8wxString4nposE'的重定位R_X86_64_PC32;使用 -fPIC 选项重新编译
在 Windows 上构建没有问题,只有在 Linux 上构建时才会出现问题。而且我不明白,我需要用-fPIC选项重建wxWidgets库,还是需要在CMakeList中更改程序集类型?
如果是 wxWidgets,我可以在不重建库的情况下解决这个问题吗?
试图添加到 CMakeList:set(POSITION_INDEPENDENT_CODE ON)
- 没有帮助。
构建标志:set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-invalid-offsetof -std=c++0x -fpack-struct=1 ")
我在VS2019中创建了最简单的CMake项目,用Ubuntu在VB中远程编译,启动它,一切正常,一切正常。如何在 Ubuntu 本身中运行可执行文件以及如何命名?项目所在的目录中没有可执行文件,但它是在工作室启动的。也许它是一个Makefile?如果是这样,如何运行它?
他唯一做的事:
$make
[100%] 构建目标 CMakeProject1
在输出窗口和错误描述中:“void __cde ....”
如何解决这个问题?
在 AstraLinux 上构建项目时发生错误。
“发生错误。无法在远程主机上启动 'rsync' 命令,请使用系统包管理器安装它。请参阅...”
根据 MSDN 指南安装了所有内容:https ://docs.microsoft.com/ru-ru/cpp/build/get-started-linux-cmake?view=vs-2019 和https://docs.microsoft.com/ru -ru/cpp/linux/configure-a-linux-project?view=vs-2019。
构建项目时,此刻崩溃:“将源文件复制到远程计算机时发生异常:无法创建目录,mkdir退出代码:1”。
我尝试了此处描述的所有内容,但没有帮助。
有什么想法可以克服它们,第二个可以从第一个错误中出来,还是它们没有相互关联?
PS日志:“liblinux.IO.RemoteRsyncDaemon:配置目录创建失败,输出:和错误输出:无法chdir到主目录/home/astra:权限被拒绝bash:/home/astra/.bashrc:权限被拒绝” - 需要超级用户权利?
例如,有一个路径:C:\Users\user\source\repos\test1\test.txt 如何从中得到一个树分支:c:-->Users-->user-->source.... ..等等 .d。我想要算法本身,如何安排这一切。我可以将路径拆分为列表:
void GetParent(DirectoryInfo inf, List<string> coll)
{
coll.Add(inf.Parent.Name);
if (inf.Parent.Name != selectedDisk)
{
GetParent(inf.Parent, coll);
}
}
我可以从文件名分支回到根文件夹:
tree.Items.Add(GetParent(selectedDirInfo));
TreeViewItem GetParent(DirectoryInfo inf)
{
TreeViewItem t = new TreeViewItem();
t.Header = inf.Name;
if (inf.Parent.Name != selectedDisk)
{
t.Items.Add(GetParent(inf.Parent));
}
return t;
}
但是要从头收集到分支,到头来,脑洞都达不到。有任何想法吗?
将鼠标悬停在按钮上时菜单会展开,并在网格上的 MouseLeave 事件上折叠。如果菜单没有展开并且光标从网格中移除,菜单将打开和关闭。看到代码后,我想你会明白我在说什么。使用 MouseLeave 可以通过哪些其他方式完成此操作?
菜单折叠/展开动画。
<Window.Resources>
<Storyboard x:Key="OpenMenu">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Height)"
Storyboard.TargetName="GridHeaderMenu">
<EasingDoubleKeyFrame KeyTime="0" Value="30"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="80"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="CloseMenu">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Height)"
Storyboard.TargetName="GridHeaderMenu">
<EasingDoubleKeyFrame KeyTime="0" Value="80"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="30"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</Window.Resources>
触发器:
<Window.Triggers>
<EventTrigger RoutedEvent="Image.MouseEnter" SourceName="imgOpenMenu">
<BeginStoryboard Storyboard="{StaticResource OpenMenu}"/>
</EventTrigger>
<EventTrigger RoutedEvent="Grid.MouseLeave" SourceName="GridHeaderMenu">
<BeginStoryboard Storyboard="{StaticResource CloseMenu}"/>
</EventTrigger>
</Window.Triggers>
菜单:去掉了代码中的冗余代码,以求简洁。
<Grid Name="GridHeaderMenu" Grid.RowSpan="2" Background="#FFEEE9E8" VerticalAlignment="Top"
Height="30" Width="150"
HorizontalAlignment="Right"
Margin=" 0, 50,10,0">
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal">
<Image/>
<Image/>
<Image/>
<Image/>
<Image/>
</StackPanel>
<StackPanel Orientation="Horizontal" Height="30" Margin="0, 10">
<Image/>
<Image/>
<Image/>
<Image/>
</StackPanel>
</StackPanel>
</Grid>
我已经在一张纸上创建了一些报告(如本示例https://docs.microsoft.com/ru-ru/previous-versions/hh273267(v=vs.140)),但现在我需要创建一个表行数未知,即 页可以。以上 1. 问题:如何形成表格或类似的东西呢?或者,如何将所有数据从集合传输到 ReportViewer。
我尝试点击此链接: https://docs.microsoft.com/ru-ru/previous-versions/ms251784(v=vs.140) 但在将 ReportViewer 添加到工具箱的阶段卡住了,通过添加下载的包选择项目...但出现“以下控件已成功添加到工具箱但未在活动设计器中启用”之类的失败。
我拿起的框架的PS版本。