我还没有找到如何使 QMenu 中的图标变大。我试图定义一个图标大小被放大的样式表。但它不起作用。这是我的代码:
menuStyleSheet = ("""
QMenu {
font-size: 18px;
color: black;
border: 2px solid black;
left: 20px;
background-color:qlineargradient(x1:0, y1:0, x2:0, y2:1, stop: 0 #cccccc, stop: 1 #ffffff);
}
QMenu::item {
padding: 2px 20px 2px 30px;
border: 1px solid transparent; /* reserve space for selection border */
spacing: 20px;
height: 60px;
}
QMenu::icon {
padding-left: 20px;
width: 50px; /* <- unfortunately, doesn't work */
height: 50px; /* <- unfortunately, doesn't work */
}
""")
#####################################################
# THE PYQT APPLICATION # …Run Code Online (Sandbox Code Playgroud) 对于一些语法高亮实验,我在Python 3.6 中创建了以下原始字符串(请注意,字符串本身包含一段 C 代码,但现在这并不重要):
myCodeSample = r"""#include <stdio.h>
int main()
{
char arr[5] = {'h', 'e', 'l', 'l', 'o'};
int i;
for(i = 0; i < 5; i++) {
printf(arr[i]);
}
return 0;
}"""
Run Code Online (Sandbox Code Playgroud)
我注意到每一行都以 Unix 风格的\n换行符结尾。但我实际上希望 - 为了我的实验 - 让每一行都以 Windows 风格的\r\n换行符结尾。有没有办法优雅地做到这一点?
我有以下 json 文件:
标签.tg
[{"_type": "tag", "name": "A0", "path": "Drivers\\CMSIS\\Include\\arm_math.h", "pattern": "/^ float32_t A0; \\/**< The derived gain, A0 = Kp + Ki + Kd . *\\/$/", "typeref": "float32_t", "kind": "member", "scope": "__anond9a59aba0f08", "scopeKind": "struct"},
{"_type": "tag", "name": "A0", "path": "Drivers\\CMSIS\\Include\\arm_math.h", "pattern": "/^ q15_t A0; \\/**< The derived gain, A0 = Kp + Ki + Kd . *\\/$/", "typeref": "q15_t", "kind": "member", "scope": "__anond9a59aba0d08", "scopeKind": "struct"},
{"_type": "tag", "name": "A0", "path": "Drivers\\CMSIS\\Include\\arm_math.h", "pattern": "/^ q31_t A0; \\/**< The derived gain, …Run Code Online (Sandbox Code Playgroud) 注意:在将此标记为重复之前,请阅读整个问题,
尤其是第5章:-)
假设你有一个大型的C-项目与众多.h和.c文件.但大多数文件从未使用过.这通常是嵌入式软件项目的情况.微控制器的每个外围设备的驱动程序都存在于项目的某个位置,但您通常只使用其中的一些.如果 - 例如 - 我使用usb驱动程序和uart驱动程序,我将导入我的相应.h文件main.c:
#include "stm32f7xx_usb.h"
#include "stm32f7xx_uart.h"
Run Code Online (Sandbox Code Playgroud)
好的......我过度简化了用例,但你明白了.
让我们就死文件的以下快速和脏定义达成一致:
死
.c文件是永远不会到达函数或数据的文件,因为.h不导入相应的文件.
我知道,这是一个非常不洁的定义.文件.c和.h文件之间并不总是存在一对一的关系.所以也许我应该说:
一
.c,如果没有它的功能/数据通过一个或多个进口暴露的文件已经死了.h的文件.
通常在嵌入式软件中,我们将这些import语句包含在一个#ifdef块中:
#ifdef USE_USB
#include "stm32f7xx_usb.h"
#endif
Run Code Online (Sandbox Code Playgroud)
这意味着状态"dead"或"alive"可以在编译时更改,具体取决于编译时注入的预处理器宏.因此,让我们假设在编译时注入的所有预处理器宏都是已知的.它们可以简单地在makefile中找到.
有时其中一个死文件有错误.当错误冻结整个编译过程时非常令人沮丧 - 特别是因为无论如何都不会使用该文件.在编译之前知道哪些文件已经死了,可能非常有用.
但我真的不知道可以使用什么工具.如何.
PS:当然,无论如何都应该运行某种预编译器或解析器.但那没关系.
我想我越来越接近这个目标了,但我还没有.我会告诉我现在的位置.
传递参数-ffunction-sections和-fdata-sectionsgcc编译器会在生成的目标文件中产生干净分离的函数和数据块.
接下来,我传递参数-Wl,--gc-sections和-Wl,--print-gc-sections海湾合作委员会链接.链接器启动所有不可缓存的数据和函数,从而产生更小的二进制文件.此外,链接器打印出他扔掉的东西:
...
ld.exe: Removing unused section '.text.HAL_UART_Receive_IT' in file …Run Code Online (Sandbox Code Playgroud) 这个问题源于Eclipse中的旧痛苦.高dpi显示屏上的图标太小.在文件系统中搜索图标(可能是.png或.gif文件)也无济于事.它们隐藏在Eclipse jar文件中.
幸运的是,最新的Neon版本有望解决这个问题.然而,如果我能够触及图标并调整它们,我会很激动.让编程环境完全自定义会非常有趣.
是否可以打开一个jar文件,取出一些图标,用你自己的替换它们,关闭jar文件并启动Eclipse?
或者是在Github上某处下载整个Eclipse源代码并从头开始编译所有内容的唯一方法(使用您自己的图标替换原始图标)?如果这是唯一的可能性,那么我就放弃了(除非我可以在某个地方获得如何构建它的教程).
编辑:显然,你不能只是改变jar中的一些文件,因为这会弄乱'签名'.Eclipse将不再运行您已更改的插件jar.有人将我重定向到以下StackOverflow主题,该主题描述了如何取消签名jar文件: 取消签名一个签名的jar
当您对jar文件进行签名时,新文件将添加到META-INF目录中,例如"MKSIGN.SF"和"MKSIGN.DSA".只需将它们从jar文件中删除(使用任何zip实用程序),然后将其保留为未签名.
我遵循了这个建议,但没有帮助.Eclipse仍然拒绝运行我改变过的任何插件jar.
编辑:这些是我在jar文件中删除的文件: