草庐IT

alpha_char

全部标签

c++ - 如何防止 Qt 对 QListView 中的图标进行 alpha 混合选择?

我有一个使用QTableView和QListView的Qt应用程序。在这两个witdgets中,我都显示了一些图标。问题是,当用户选择其中一个条目时,Qtalpha将选择混合在图标上,使图标看起来对比度较低,颜色略有不同。我希望Qt先绘制选区,然后在顶部绘制图标,这样无论是否选中,它们看起来都一样。我该怎么做?更新:这就是我的问题:白色矩形图标更容易识别:当您使用图形编辑器检查颜色值时,您会看到颜色值发生了变化。我希望Qt在没有这个覆盖层的情况下按原样绘制图标。这里的QListView是用颜色渐变背景设计的。但是我对没有样式的QTableView也有同样的问题。顺便说一句,所有图标都是

c++ - 返回填充在函数内部的 const char* vector 是否是明确定义的行为

我目前正在学习vulkan。在其中一个教程中,我看到了一个大致执行以下操作的函数:#defineSOMESTRING"HelloWorld!"std::vectorbuildVector(){std::vectorvec;vec.push_back(SOMESTRING);returnvec;}当我看到这个时,我想知道:这是定义的行为吗?字符串"HelloWorld!"的内容不是位于堆栈中,因此一旦函数返回就无效了吗?如果这是未定义的行为,那么正确的方法是什么?不幸的是,由于vulkanAPI,无法使用std::string。 最佳答案

c++ - 在 C++ 中将 char* 转换为 const char*

C++中如何将char*转换为constchar*?为什么程序1可以运行而程序2不能运行?程序1(工作):char*s="teststring";constchar*tmp=s;printMe(tmp);voidprintMe(constchar*&buf){printf("GivenStr=%s",buf);}程序2(不工作)char*s="teststring";printMe((constchar*)s);//typecastingnotworkingvoidprintMe(constchar*&buf){printf("GivenStr=%s",buf);}我收到的错误:x.c

c++ - 将用户输入从 int[] 转换为 char[][]

我让这个程序将int数组作为输入并使用快速排序对其进行排序,但我想知道,我将如何更改这个程序以将char[][]作为输入(字符串数组)并按字母顺序对它们进行排序?如果只有一个字符串,它可以工作,但我想知道如果有人想要字符串数组怎么办//followingprogramsortsanarrayusingquicksortalorithm#include#includevoidswap(int*a,int*b)//functiontoswapelements{intt;t=*a;*a=*b;*b=t;}intpartition(intarr[],intleft,intright)//fun

使用 unique_ptr 包含 char 数组的 C++ 对象

我正在寻找一种方法来使用unique_ptr来分配一个结构,该结构包含一个char数组,其中包含动态设置的字节数以支持不同类型的消息。假设:structMyMessage{uint32_tid;uint32_tdata_size;chardata[4];};如何将下面的send_message()转换为使用智能指针?voidsend_message(void*data,constsize_tdata_size){constautomessage_size=sizeof(MyMessage)-4+data_size;constautomsg=reinterpret_cast(newcha

c++ - 为什么 ostream::operator<< 是 char 参数的全局函数?

根据http://www.cplusplus.com/reference/iostream/ostream/operator%3C%3C/operator 最佳答案 operator对于streambuf*(或int这听起来更简单)和char既可以作为成员(member)运营商实现,也可以作为非成员(member)(免费)运营商实现。我的猜测是,这是由于在定义C++时出现了追溯兼容性问题:可能较旧的代码依赖于成员operator,因此他们决定不将其作为免费运营商移动。C++标准库(以及STL)有许多像这样的不均匀性。

c++ - CToolBar (MFC) 上带有 alpha channel 的 32 位图像

是否可以在MFC的CToolBar控件上显示带有alphachannel的32位图像?目前,我的工具栏使用由VisualStudio2010中的“文件名”属性分配给它的4位图像。提前致谢! 最佳答案 迟到的答案,但我遇到了同样的问题,所以万一其他人正在寻找解决方案:具有8位alpha的32位图像开箱即用,至少在XP和更新版本上是这样。您需要一个32位alphaBMP格式的BMP文件,许多应用程序无法正确保存该格式。我的方法是先生成PNG图像,然后使用这个小工具将它们转换为32位BMP:https://github.com/thome

c++ - 如何专门化模板函数以让它接受将 char 数组作为参数传递?

//problem.cpp:#includetemplatevoidfunc(constT&v);intmain(){inti;floatf;char*cp;charca[4];func(i);func(f);func(cp);func(std::string("std::string"));func(ca);func("string_literal");return0;}//problem2.cpp#includetemplatevoidfunc(constT&v);//undefinedreferenceto`voidfunc(intconst&)'templatevoidfunc

c++ - MFC C++ 如何在 MessageBox 中显示一个 const char 值?

我希望标题足够好,可以帮助解释需要什么。在解决了这么多之后,我的项目应该完成了。当我这样做的时候chare[1000]="HELLO";CStringmsg;msg.Format(_T("%s"),e);MessageBox(msg);消息框只是向我显示诸如“㹙癞鞮㹙癞鞮”之类的随机词,而不是我想要的“HELLO”。我该如何解决这个问题??帮助将不胜感激。谢谢你 最佳答案 首先,您真的以这种方式使用MessageBoxAPI吗?检查MSDNDocumentation.现在回答你的问题,chare[1000]="HELLO";CStr

c++ - strcpy c++ 无法从字符串 char* 转换参数 1

我正在尝试将txt文件*中的单词放入一个字符串数组中。但是strcpy()有错误。它说:'strcpy':cannotconvertparameter1from'std::string'to'char*'。这是为什么?难道不能在C++中创建这样的字符串数组吗?#include#include#includeusingnamespacestd;voidArrayFillingStopWords(string*p);intmain(){stringp[319];//lekseisstostopwordsArrayFillingStopWords(p);for(inti=0;i