小编BWH*_*zel的帖子

在Qt 4.7中,如何将弹出菜单添加到QToolbar按钮?

我是Qt的新手,目前正在使用Qt Creator和原始C++代码.我设法通过向两者添加QAction对象来实现一些简单的功能,包括菜单和工具栏.但是我遇到了一些困难:

我想要做的是有一个菜单选项,它有一个子菜单,例如New,带有一个项目的子菜单,并在QToolbar上复制它.我在菜单中管理它:New作为QMenu,子菜单项作为QAction对象.我无法看到如何让它在工具栏中工作,例如一个New按钮,当点击它时,它会运行"默认"QAction(例如第一个子菜单项),但是右边有一个较小的菜单按钮提供所有其他选项.我想这类似于Office工具栏上的撤消/重做按钮.

c++ qt

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

可以使用预处理程序指令为Mac和iOS导入不同的头文件吗?

我正在为Mac OS X和iOS编写一个类库,作为OS X的Cocoa Framework和iOS的静态库发布.为了简化问题,我打算在Xcode中使用多个目标.但是,Mac OS X上的类链接到Cocoa.h,而在iOS上它们链接到Foundation.h.

我的问题基本上是:

  • Mac OS X框架可以链接到Foundation.framework吗?框架中使用的类是NSString,NSMutableString和NSMutableArray.
  • 或者我可以在头文件中使用预处理器指令来控制框架包含,例如

    #ifdef MacOSX
        #import <Cocoa/Cocoa.h>
    #else
        #import <Foundation/Foundation.h>
    #endif
    
    Run Code Online (Sandbox Code Playgroud)

objective-c c-preprocessor

8
推荐指数
2
解决办法
7562
查看次数

可以使用Doxygen,Sandcastle或其他文档生成器记录XML吗?

我目前正在使用Sandcastle,Doxygen和JavaDoc为我编写的代码生成文档.是否可以使用这些包记录XML模式?如果没有,是否有任何(最好是免费!)包可以做到这一点?我可以自己编写文档作为Doxygen或Sandcastle中的额外概念主题,但我宁愿为我做一个工具!

一个例子是(虽然我不是XML Schema的专家!):

/// <summary>Top Node</summary>
<xs:element name="TopNode">
    /// <summary>Child Node</summary>
    <xs:element name="ChildNode" type="xs:string"/>
</xs:element>
Run Code Online (Sandbox Code Playgroud)

xml sandcastle xsd doxygen documentation-generation

7
推荐指数
1
解决办法
3958
查看次数

在.NET Web服务中,SoapException.Message属性如何易于读取?

我正在编写一个ASP.NET Web服务,并抛出一个带有消息的SoapException:

throw new SoapException("BANG!", SoapException.ClientFaultCode);
Run Code Online (Sandbox Code Playgroud)

当我创建一个ASP.NET客户端,并请求标签显示SoapException.Message属性时,它会显示类似于以下内容的消息:

System.Web.Services.Protocols.SoapException:BANG!at [DIRECTORY]\WebService1.asmx.cs中的WebServiceException.WebService1.HelloWorld():第23行

是否有一种简单的方法可以简单地呈现消息BANG!而不是整个字符串?或者我应该只使用正则表达式?

c# asp.net web-services exception

6
推荐指数
1
解决办法
3445
查看次数

Linux 全局包含路径

我正在尝试使用 OpenBabel,但在为包含文件设置全局搜索路径时遇到了很大的困难。我已经使用 $LD_LIBRARY_PATH 成功链接到库,但是在使用 GNU C++ 编译器进行编译时,它找不到包含文件。Linux 上是否有全局包含环境变量,如果有,是什么?

c++ linux

6
推荐指数
1
解决办法
9830
查看次数

使用NSSavePanel,用户如何选择要保存的特定文件类型?

我在Cocoa中编写一个应用程序,允许用户以3种不同的格式导出数据:CSV,JSON和XML.我已将允许的扩展添加到NSSavePanel:

NSSavePanel* saveFile = [NSSavePanel savePanel];
NSArray* extensions = [[NSArray alloc] initWithObjects:@"csv", @"json" @"xml", nil];
[saveFile setAllowedFileTypes:extensions];
Run Code Online (Sandbox Code Playgroud)

但是,如何设置NSSavePanel以允许用户选择要保存的格式,例如在TextEdit中提供"文件格式"列表框?如果可以,那么我如何确定选择了哪种格式?

cocoa objective-c nssavepanel

6
推荐指数
1
解决办法
3540
查看次数

在Bash中,如何将选项标志值存储在变量中?

编写Bash脚本时,当作为命令行中选项标志的一部分提供时,如何从命令行获取值?

例如以下内容:

./script --value=myText --otherValue=100
Run Code Online (Sandbox Code Playgroud)

如何将myText100值存储在变量$textand中$num

bash

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

在ASP.NET中获取内联的当前URL

我正在尝试在我的网站上实现Facebook Like按钮,但不是必须将其添加到每个单独的页面,我宁愿将其添加到母版页并使用当前URL.我尝试了以下代码来获取当前的URL:

<a href="<% Request.Url.AbsoluteUri.ToString(); %>">Link</a>
Run Code Online (Sandbox Code Playgroud)

但是,当它运行时,例如在http:// localhost:1234/About.aspx上,链接仅指向http:// localhost:1234而不是完整地址.

我做错了什么,或者不可能以这种方式实现它?

asp.net

3
推荐指数
1
解决办法
3719
查看次数

从Windows C函数返回字符串

我是C和C++中纯Windows API级功能的完全新手,并且最近一直在尝试使用.NET互操作性.我已经构建了一个简单的库,它已经成功地将数值(int/float等)返回给.NET调用者,但是我没有运气好的字符串.

我尝试了各种不同的数据类型,但似乎都没有:LPSTR,LPCSTR,LPCTSTR和LPCWSTR.不可否认,我没有尝试过char*.此外,一旦设置了一个方法来返回一个字符串,它是否需要.NET作为特定数据类型进行编组,还是可以直接读入System.String对象?我已经尝试解析为IntPtr然后转换为字符串,但这不起作用.

.net c pinvoke winapi interop

2
推荐指数
1
解决办法
194
查看次数

Win32下如何改变STATIC文本的颜色?

我在一个黑色的窗口上有一些静态文本,我想在运行时使用颜色选择器对话框更改它。我已经成功获取了颜色,现在我只需要更改文本即可!我已经读过该WM_CTLCOLORSTATIC消息是要处理的消息,尽管这似乎仅适用于最初将控件绘制到屏幕上的情况。能否WM_PAINT使用?

到目前为止,我设置颜色的代码是(WM_CTLCOLORSTATIC以防万一):

if ((HWND)lParam == GetDlgItem(hWnd, uLabelId)
{
    SetBkMode((HDC)wParam, TRANSPARENT);
    SetTextColor((HDC)wParam, crLabelTextColour);
    return (BOOL)CreateSolidBrush(GetSysColor(COLOR_MENU));
}
Run Code Online (Sandbox Code Playgroud)

在处理这个问题时,我可能完全搞错了,所以任何帮助都将不胜感激!

winapi

2
推荐指数
1
解决办法
2373
查看次数

在Win32中,如何将文本文件成功读入内存?

我试图在Win32中使用简单的文件IO.到目前为止,写入工作正常,但读取不是:尽管它成功读取了内容,但附加的"垃圾"会附加到字符串中.我到目前为止的代码如下.该计划已UNICODE定义.

写作:

DWORD dwTextSize = GetWindowTextLength(hWndTextBox);
WCHAR *lpszText = new WCHAR[dwTextSize];
GetWindowText(hWndTextBox, lpszText, dwTextSize + 1);
hTextFile = CreateFile(lpszTextFileName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
DWORD dwBytesWritten;
WriteFile(hTextFile, lpszText, 2 * dwTextSize, &dwBytesWritten, NULL);  // x2 for 2 bytes per Unicode character
CloseHandle(hTextFile);
DeleteObject(hTextFile);
Run Code Online (Sandbox Code Playgroud)

对于此示例,Hello, World!已成功保存为Hello, World!.

阅读:

lpszTextFileName = L"text.txt";        // LPCTSTR Variable
hTextFile = CreateFile(lpszTextFileName, GENERIC_READ, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
DWORD dwFileSize = GetFileSize(hTextFile, &dwFileSize);
DWORD dwBytesRead;
WCHAR *lpszText = new …
Run Code Online (Sandbox Code Playgroud)

winapi

2
推荐指数
1
解决办法
2708
查看次数

在C中,传递给函数的char*如何填充文本?

我正在尝试创建一个将返回int的C函数,但在此过程中将填充作为变量传入的char*.我正在尝试的一个基本示例是:

int myMethod(int input, char* output, int outMaxLen) {
    int outValue = input * 5;
    if (out < 10) strcat(output, "A small number");
    else if (out < 20) strcat(output, "A medium number");
    else strcat(output, "A large number");
}
Run Code Online (Sandbox Code Playgroud)

在main.c中:

char* myMethodOutput;
int myMethodInt = myMethod(2, myMethodOutput, 15);
printf("%d %s", myMethodInt, myMethodOutput);
Run Code Online (Sandbox Code Playgroud)

运行时,整数显示在屏幕上,但文本不显示.

outMaxLen变量用于检查char*参数以确保它足够大以容纳输出字符串.

和strcat()一样,我尝试过strcpy()和strncpy(),但都无济于事.strcat()不向控制台显示任何文本,strcpy()和strncpy()使用消息EXC_BAD_ACCESS调用调试器.

我已经使用strcpy_s函数在Windows API中成功地管理了这个,但我现在正在尝试UNIX框.我可能错过了一些非常基本的东西!

c pointers c-strings

0
推荐指数
1
解决办法
288
查看次数