这个时候就会想到,delphi 其实还活着,真native编译,体积小,运行快,语言比c++方便,商业库一大堆,后面还有个免费开源版delphi的lazarus,虽然这个坑现在不推荐入,但是用这套的老开发者照样用的很爽。
c++ duilib 也是比较轻巧快速的方案,开发小工具够用了
易语言相当于一个还在更新的中文化的vb6,我觉得比用vb6好
夸aardio的人貌似说的话都差不多,没用过,看起来开发小工具还行
至于qt electron,就不是适合小工具的了吧,qt对于熟悉的人来说静态编译一下或许还行,体积不算太大性能也够,electron么。。。哪个用它的不是60M起步,启动要延迟一会儿的。。。垃圾电脑的克星,wpf都能秒启动的机子,vscode启动要8秒你们感受下
wpf,winform用一些dll合并混淆工具也能好好做成一个单文件,依赖系统.net体积不会太大,就是靠谱的工具不好找,至于.net core搞的单文件无依赖么,就是个大体积自解压,我觉得没啥意思,也许nativeaot支持winform或者wpf后能适合单文件小工具编写
个人不在乎单文件,都是.net 4.6 wpf开发工具,不合并dll,复用dll,把工具放在一个文件夹内变成一个工具集文件夹,dll共用的
大家好,我正在开发一款python的桌面软件设计IDE,就是为了能够方便的进行Python界面设计,解决Python进行桌面应用开发的痛点问题,您可以到http://www.tkinterdesigner.com尝试一下。
python本身的tkinter库,提供了一系列控件支持,但是很可惜,竟然没有官方的界面设计器。
我希望能有这样的IDE,提供类似VC++那样“所见即所得”的模式进行快速UI搭建,同时把界面设计与逻辑分离,并有一套成熟的应用软件项目开发流程进行支持。
目前这个作品已经能够支持:
1.项目管理:方便的创建,查看,管理项目工程
2.界面设计:通过拖拽操作进行界面设计,并通过属性列表修改其熟悉。也可以方便的进行窗体的嵌入设置。
3.事件与函数映射:通过对控件进行事件选择与函数进行绑定,实现逻辑。
4.代码库:提供对控件及其属性的快速访问,也提供常用功能(如文件框,文件夹遍历文件,创建线程)等。
5.样式表编辑;可以创建和管理样式,并实现控件样式应用和整体换风格。
6.调试,运行与打包:一键运行与导出EXE。
其他:还在加强插件市场,皮肤市场,外包市场的功能扩展,我希望将它发展成一个python应用开发的平台。
可以感受一下最新V1.5.1
最新V1.5.1版从入门到精通
github地址下载:https://github.com/honghaier-game/TKinterDesigner
在我看来,判断一个东西是否有价值的标准,并不是它有多么赚钱,而是他是否能帮到别人赚钱。
现在已经1.6.3版本了,目前正在紧张开发直接打包导出apk,尽早解决移动开发问题。
2022-02-26:
1.6.4版本发布,已经可以打包APK了!
欢迎体验
https://www.zhihu.com/video/1455197732536881152
GITHUB地址下载:https://github.com/honghaier-game/TKinterDesigner
百度网盘下载:
win64版本:支持打包ANDROID!
链接:https://pan.baidu.com/s/1ipaijDskmhEY8-rrdkiIuQ
提取码:6mth
win32版本:
链接:https://pan.baidu.com/s/1TaGUbzN2AxsWFSLQKuYxCA
提取码:s1lpWIN版SDK:
JDK:链接:https://pan.baidu.com/s/1lp8C_2meLpW2pqDjmilY9g
提取码:xfgp
ANDROID-SDK:链接:链接:https://pan.baidu.com/s/1zySbcphoPqj7zUgmXBIXbg
提取码:m08v
NDK:链接:https://pan.baidu.com/s/1u8MuZlQNq_VM8wKC5kqeOw
提取码:vby3
MAC版:链接:https://pan.baidu.com/s/1YZPPy5dxeHOJjVcvM-YVKQ
提取码:r94v
MAC版SDK:
ANDROID-SDK:链接:https://pan.baidu.com/s/11-fk7LGwLRLRVV5-FtlCvw 提取码:o6mu
NDK:链接:https://pan.baidu.com/s/1xWZFwLPUH7crjTkwA9GsYg
提取码:akbi
JDK:链接:https://pan.baidu.com/s/1kr7vg24AfaOaOBgVj7ApJw
提取码:u97z
说 Qt 静态编译难,打包难的,2022 年了,要个静态连接的 Qt 只需要 msys2 里一句话:
pacman -S mingw32/mingw-w64-i686-qt5-static
担心污染 msys2 环境,可以用 msys2 重新做一个干净的 mingw32 环境:
mount D:/Qt/mingw32 /mingw32 pacman -Qnq | grep mingw-w64 | pacman -R -
上面把 /mingw32 目录临时 mount 到 D:/Qt/mingw32
目录,并删除旧信息,接下来:
pacman -S mingw32/mingw-w64-i686-gcc pacman -S mingw32/mingw-w64-i686-gdb pacman -S mingw32/mingw-w64-i686-make pacman -S mingw32/mingw-w64-i686-cmake pacman -S mingw32/mingw-w64-i686-qt5-static
记得把 msys2 的源设置成中科大,略微等待,妥了,一个干净的 qt-static + mingw 环境完成了,退出 msys2,然后原有 QtCreator 里面设置工具链:
接着写个小 demo,用上面的 qt5-static 生成:
直接文件夹里双击运行:
可以看到无依赖正常运行,使用 MinGW 静态连接,嫌弃 20MB 有点大?没关系 upx 一压缩:
立马瘦身到 7MB,连一堆 msvcrt 的 VC 运行时都不需要依赖。主要是各类静态库,再写复杂点,其实也不会增加多少,你就是写的有 Qt designer 那么复杂,静态连接也才 29MB :
压缩一下,静态版本 designer 里面就只有 11 MB 了:
这么复杂的界面程序 11MB 已经非常不错了,双击运行:
验证通过,成功运行,MinGW 静态连接的,连 msvcrt 的依赖都不需要。
2021年开发 单 EXE 桌面软件可以试试 aardio 。
aardio 语法接近 Javascript ,不需要过多的学习成本,历经 17年 活跃更新已经成熟且稳定。
而且 aardio 非常小,开发环境仅 6.5 MB(包含开源的标准库、范例文档、开发环境),下载就可以使用,不需要任何复杂的配置。
aardio 生成独立 EXE 文件特别方便。例如只要将文件路径前加上 $ 号就可以将文件编译到程序中,可以一键将工程目录编译为 EXE 嵌入资源目录,不需要修改代码,aardio 中的很多函数和库都支持这种嵌入资源目录。
在 aardio 中可以非常方便地调用 C语言、C++、C#、Java、Python、R、Javascript、Node.Js、VB、Flash ActionScript、PHP、VBScript、PowerShell、NewLISP、AutoLISP、Delphi、FreeBASIC、Ruby、Rust、Julia、Nim、Go 语言、批处理 ...... 甚至可以直接嵌入汇编机器码并且转换为普通的 aardio 函数。aardio 可直接调用、嵌入、交互的第三方编程语言数量非常多,而且非常方便,大家可以 Google 一下 aardio + Python 就可以看到 aardio 这种模式吸引了不少其他编程语言的用户。
曾经有知名博主针对某个 aardio 编写的开源软件 —— 与一系列其他语言编写的同类软件试用评测对比后得出的总结是:aardio 编写的软件运行最流畅,使用体验吊打同类软件,并且非常稳定从未遇到报错,而这个 aardio 软件只用了非常少的代码 —— 体积不到同类软件的十分之一,而其他用各种桌面开发工具开发的同类软件,不但界面不顺畅,各种恼人的 BUG 也非常多。所以 aardio 编写的桌面软件拥有良好的可靠性。
我们先看一些 aardio 编写的开源软件:
最近很受欢迎的开源录屏软件 Gif123 就是用 aardio 写的,体积仅 790 KB,无任休何外部依赖,单文件绿色软件,兼容 XP,Vista,Win7,Win8,Win10,Win11 …… 等所有流行桌面操作系统 。
开源项目 WubiLex,仅积仅 890KB,同样是单文件绿色软件。百度贴吧一个关于 WubiLex 的讨论帖子已经超过 1200 回复,WIN10系统自带五笔的码表与短语词库安装、管理工具,并可增强微软五笔的设置、热键等功能。只要一个EXE文件,不需要安装,不需要任何DLL依赖。软件已自带五笔86、98、091、新世纪码表,以及极点五笔、QQ五笔、微软五笔默认词库、昱琼词库、海峰词库等。甚至自带了郑码词库、可以一键把微软五笔替换为郑码输入法。
开源项目 WinAsar,体积仅 500KB,单文件,不需要运行时,支持所有 Windows 操作系统,Electron asar 文件打包、解包工具,不需要安装 Node.js,纯 aardio 代码实现的 asar 解析器。
下面这个是 8 年前的开源项目,作者仅临时学了个把月 aardio :
aardio 里可以方便地嵌入非常多的浏览器组件,仅工程向导里的范例就有这么多(实际更多)
aardio 还可以调用系统自带的 Chrome 浏览器写软件界面,兼容 Chrome 启动参数的浏览器都可以支持( 例如 Windows 自带的浏览器 Edge Chromium),而且还支持 Javascript 与 aardio 互调函数,非常地方便,因为使用系统自带的浏览器,生成的 EXE 体积也非常小。
aardio 里嵌入浏览器不仅仅是简单地嵌入个网页,而是在网页里可以方便的调用本地函数,aardio 仅仅用几句代码就可以实现一个嵌入式的 http 服务器,将任何只能在服务器上展示的网页一键嵌入 EXE文件。
以微软最新发布的 WebView2 控件为例,在 aardio 里可以调用 Javascript 函数,在Javascript 里也可以方便的调用 aardio 函数,而且还可以把 aardio 对象直接传入到 Javascript 中使用。而且还可以非常方便的创建桌面透明窗口,以下是调用 WebView2 组件实现的透明 3D 效果:
调用 Cesium 组件实现的三维地图:
aardio 编写程序代码非常简洁,几句代码就是一个独立可运行的程序,下面我们直接上代码演示一。
一个示例可以看到 aardio 窗口嵌入 .Net 控件有多简单:
import win.ui; var winform = win.form(text="DataGridView") import System.Data; var tab = System.Data.DataTable("DT"); tab.Columns.Add("名称"); tab.Rows.Add({"WangWu"}); import System.Windows.Forms; var grid = System.Windows.Forms.CreateEmbed("DataGridView",winform); grid.ColumnHeadersHeightSizeMode = 2; grid.DataSource = System.Data.DataView(tab); winform.show(); win.loopMessage();
你可能无法想象,aardio 作为一个非 .Net 平台的语言,可以像 C# 一样自由调用 .Net 对象。甚至可以在 aardio 中直接引入 .Net 的名字空间作为 aardio 名字空间使用。一个重要的特性是 aardio 可以内存加载 .Net 的程序集,并且不再强依赖生成该程序集的 .Net 版本,可以非常方便地生成小巧的绿色 EXE 文件 —— 同时让 .Net 反编译工具失效。
下面演示一下用 aardio 调用 PowerShell,并且在 PowerShell 中调用 aardio。这甚至都不用带上体积较大的 System.Management.Automation.dll,一个轻巧的 EXE 就可以搞定一切,向下兼容到 PowerShell 2.0。
import dotNet.ps; var pScript = /* # 声明 PowerShell 参数 param($win) # 修改 aardio 对象属性 $win.title = "PowerShell + aardio"; # 调用 aardio 对象函数 $win.msgbox("这是 PowerShell 调用 aardio 打开的对话框。") */ import win; dotNet.ps(pScript,{ win = win; //# 将 aardio 对象作为参数传给 PowerShell });
aardio 直接调用系统 API 函数:
import console; //不需要声明,直接调用原生 API 函数,语法简洁可读性好。 var result = ::User32.PtInRect( ::RECT(2,3,300,500) , 12, 66 ); console.log( result ); console.pause(true);
将任何网络 API 甚至是任意普通网址声明为 aardio 对象:
import web.rest.jsonLiteClient; var http = web.rest.jsonLiteClient(); //导入远程 API var countApi = http.api("https://api.countapi.xyz/hit{/domain}{/key}") //服务器 API 已经变成了 aardio 函数对象 var data = countApi["key"].get();
编译 C 语言代码生成 DLL 执行文件,再调用 DLL 中的 C 函数:
import tcc; //编译 DLL tcc.build( "/start.dll" ).code = /*** #include <windows.h> __declspec(dllexport) int Add( int a,int b ) { return a + b; } ***/ //加载 DLL var dll = raw.loadDll( "/start.dll",,"cdecl" ); //调用 C函数 var result = dll.Add(12,3);
屏幕找字:
import mouse; import string.ocrLite; import string.ocrLite.defaultModels; var ocr = string.ocrLite(); var ocrResult = ocr.detectScreen(); var x,y = ocrResult.findPoint("要查找的按钮文本",0.1); mouse.moveTo(x,y,true);
在 aardio 中调用 Python,简单得就像在 Python 中使用 Python:
import console; import py3; //导入 Python 模块。 var itertools = py3.import("itertools") //调用 Python 函数,支持纯 aardio 类型参数 var permutations = itertools.permutations({"a","b","c"}); //调用 Python 内置函数 list var pyList = py3.list(permutations); //遍历 Python 对象成员 for( item in pyList.each() ){ console.log(item); //像 aardio 对象一样使用 Python 对象 } console.pause();
播放 GIF 动画:
import win.ui; /*DSG{{*/ var winform = win.form(text="GIF 动画";bgcolor=0xEDDDD8) winform.add( plus={cls="plus";left=0;top=0;right=760;bottom=470;repeat="scale";z=1} ) /*}}*/ import inet.http; winform.plus.background = "http://download.aardio.com/v10.files/demo/plus-demo.gif"; winform.show(); win.loopMessage();
调用微软 WebView2 控件截图:
import win.ui; /*DSG{{*/ var winform = win.form(text="WebView2 网页截图";right=1108;bottom=759) /*}}*/ import web.view; var wb = web.view(winform,,0/*自动调试端口*/); winform.show(); wb.go("http://www.baidu.com"); wb.wait("baidu"); import web.socket.chrome; var ws = wb.openRemoteDebugging(); ws.Runtime.enable();//启用 Runtime.executionContextCreated //截图 import crypt; import process.imageView; ws.Page.captureScreenshot().end = function(result,err){ if(result[["data"]]){ string.save("/screenshot.png",crypt.decodeBin(result[["data"]]) ) process.imageView("/screenshot.png"); } } win.loopMessage();
获取系统 TPM 版本信息:
import console; import sys.tpmInfo; var tpmInfo = sys.tpmInfo.get(); if(tpmInfo){ console.log("支持 TPM"); console.log("TPM 是否启用:",tpmInfo.enabled); console.log("TPM 是否激活:",tpmInfo.activated); console.log("TPM 支持版本:",tpmInfo.version) } else { console.log("不支持 TPM"); } console.pause();
查看系统安装序列号:
import com.wmi; import win.reg; var productKey = com.wmi.get("softwarelicensingservice","OA3xOriginalProductKey"); if(!productKey) { productKey = win.reg.queryWow64( "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSoftwareProtectionPlatform","BackupProductKeyDefault" ) } import console; console.log("安装序列号" ,productKey); console.pause(true);
调用 .Net 创建 WebService:
import console; import dotNet; //创建应用程序域(无参数创建唯一实例,不必手动释放) var appDomain = dotNet.appDomain(); //动态创建Web服务 var webService = appDomain.createWebService("http://fy.webxml.com.cn/webservices/EnglishChinese.asmx") //调用WebService接口创建类 var englishChinese = webService.createInstance("EnglishChinese") //调用WebService提供的函数 var ret = englishChinese.TranslatorString("hello" ); console.dump(ret); console.pause();
其实不用调用 .Net ,纯 aardio 代码调用 WebService 更简单,。
以前研究过 MSSOAP ,要依赖一堆 DLL 文件,这不符合 aardio 的风格。所以我自己研究了一下 SOAP 协议写了个 web.soapClient , 几句代码搞定,不依赖任何外部组件:
import console; //导入MSSOAP支持库 import web.soapClient; //创建SOAP客户端 seviceClient = web.soapClient("http://fy.webxml.com.cn/webservices/EnglishChinese.asmx") //调用远程Web服务提供的函数 var transArray,err = seviceClient.TranslatorString("hello"); //显示返回值 console.dump( string.join( transArray,'
' ) ) ; //按任意键继续 console.pause();
在 aardio 中嵌入并调用批处理:
import console import process.batch; //批处理 for 遍历并拆分字符串 var bat = process.batch(` @echo off for %%i in (abc,def,xyz) do echo %%i `) console.log(bat.read(-1)) console.pause()
调用命令行,并自动触发 Ctrl + C
import console import process.popen var prcs = process.popen("ping 127.0.0.1 -n 10 ") for( all,out,err in prcs.each() ){ console.log( out,err ); prcs.ctrlEvent(0); } console.pause();
调用 Rust 语言解析 TOML
import console; import string.toml; var str = string.toml.stringify({abc=123,d={1,2,3}}); console.log( str ); import process.code; process.code("~libstring oml.res"); console.pause(true);
在 aardio 里嵌入 PHP,以下短短几句代码,包含了 HTTP 服务器,PHP服务端,嵌入的浏览器组件:
import win.ui; /*DSG{{*/ var winform = win.form(text="Hello World / PHP_CGI 服务器") /*}}*/ var code = /* <html> <head> <meta charset="utf-8"> <title>PHP 测试</title> </head> <body> <?php echo '<p>Hello World / PHP_CGI 服务器</p>'; ?> </body> </html> */ string.save("/test.php",code); import php.simpleHttpServer; var url = php.simpleHttpServer.startUrl("/test.php"); import web.form; var wb = web.form(winform); wb.go(url); winform.show(); win.loopMessage();
执行 Ruby 语言代码:
import win.ui; /*DSG{{*/ var winform = win.form(text="执行Ruby代码") winform.add( edit={cls="edit";left=26;top=16;right=737;bottom=435;multiline=1;z=1} ) /*}}*/ import process.ruby; var out = process.ruby.exec("puts '测试UTF-8'") winform.edit.print(out); var out = process.ruby.eval(`[1, 2, { name: "tanaka", age: 19 }]`) winform.edit.print(out); winform.show(); win.loopMessage();
QT
这个问题其实,主要取决于你的团队,以及商业模式。
我假定你一个便携小工具是没打算赚大钱的,只是顺带附送的工具,从这个角度出发的话,「不可能专门为了这个项目去培训或者招聘」。
那么结果就很显然了:你的团队成员会什么技术,那就用什么技术。什么方法能立即上手就用它。——其它的因素都是次要的。因为理论上,现在任何技术,都可以用来写桌面应用。所以技术本身不是痛点,痛点是你的团队成员懂什么,最喜欢用什么,那就赶快用上。
我很难相信为了一个便携小工具你们会专门让团队学习培训新技术或者专门招一个懂新技术的人来带队。如果是这样的话,那参考其它回答。
一大早起来真是笑死我了。
由于老头环空前的热潮,以及B站特有的UP主靠制作视频吸引流量转直播的模式,导致很多有人气但完全没有魂系列经验的主播在播这款游戏。比如某幻、瓶子。
(就是一开始制作视频是主业,直播是兼职,甚至是乐趣兴趣,到直播为主,制作视频反倒成了兼职。这种现象在游戏区特别明显。)
这就很有节目效果了,我看几个有名气的主播,都是重复被虐,平均活不过5分钟。真正是在哪里跌倒就从哪里跌倒。
很多在我们这些老玩家看来常识性的东西,对于他们来说完全不存在的。
盾反这种就不提了(其实我也不会),连二人转、回合制、推图都不懂。在大型地牢里不想打小怪,一个劲往前跑,结果变成开火车;当着怪物的面喝药=白喝;开宝箱被怪物背刺;以为学了法术就是法爷了,结果被几只鸟打得抱头鼠窜。
然后另一边,那些原本有魂系列经验的主播,就吃了刻板印象的亏。觉得自己有技术有实力,也不练级就顺着主线硬钢。就比如一上来的野外精英太阳骑士,要么你死要么我亡,绕路是不可能绕路的。
太阳骑士都还好,毕竟王老菊都能杀。
但没有等级,没有血量,没有伤害,硬钢噩兆。
真当噩兆快慢刀是假的,自己打几次就能盾反了?而且老头环这次砍了盾反在BOSS战中的作用,要反三次(二次)才能触发处决。
结果被虐3000遍,又不好意思去练级,尬在那了。
老头环是不是玩家的盛宴我还不知道(买了游戏,昨天也预下载了,结果今天起来发现那个盘满了……正在重新下载,下载完了又发现,我的电脑只有8G内存……),但肯定是不少主播的灾难、观众的盛宴。
当然,我也知道有些主播直播受罪是搞节目效果,但我也是真看到有主播被气到下播了。
另外一点,老头环这次其实是以探索为主要玩法。
B站UP主老戴今天专门做了一期视频讲解,想要玩好、玩轻松,就是尽可能的探索地图,拿物品、刷等级。而不是走到哪杀到哪,打不过硬去打。
就比如第一个剧情BOSS前,大地图上有的是小型地牢,野外精英,要把图清完了再去打噩兆,真跟打弟弟一样。(收回我的话,40级30血20耐20敏+3打刀7瓶奶,打了7次才过。前三次就是纯背板,后三次有点贪,经常血瓶白喝,最后一次基本掌握出手时机,就硬耗过去了。)
其实魂系列游戏特别吃角色强度(等级、装备),一些小怪你一刀砍死和一刀残血,完全就是两种难度。打BOSS,你挨一下就要喝药,和挨两下才需要喝药也是两倍的差距。
不过按照这么个玩法,的确没有什么节目效果。
讲真,还真就是看那些新手主播无能狂怒最有节目效果。
至于游戏本体,如今我也的确是玩上了,总体上来说符合我的期待。
作为一个中年人,我其实是在看了老头环试玩视频后才接触魂系列的。
原因有2,一是手残反映慢,玩这种游戏非常苦手;二是,我其实不太喜欢魂系列那种压抑的黑暗风格。
但老头环作为开放世界,虽然依旧以压抑阴郁为主,但也有光明广阔的场景。比如一开始做完新手指引推门而出的那一刻。
至于在难度与操作方面,远程技能的实用化,召唤物的存在,以及跳砍与伪盾反的出现,真的能够解决很多问题。
只是看你愿不愿意当一个“卑鄙的褪色者”。
远程技能包括法术与射击。我玩的武士,初始给的长弓非常给力。尤其记得推一座城堡图的时候,一开始不清楚套路,进入城堡被满地的炸药桶与两个放火球的法师直接秒了。复活后掏出长弓,一剑封喉,解决掉法师无伤过了。
还有初期的一个地牢,一个场景墙上爬着的与左右墙角蹲着的类似地精的怪物,近战5-6刀才能砍死。
第一次去直接围殴致死。
第二次,用弓箭一只只引过来,很轻松就过了。
至于近战武器,我是非常推荐初期见完老婆就能开箱子拿到的君王大剑。
这把武器虽然攻速低,成长性也低,但在初期真的非常实用。
尤其是在跳劈方面。
这一作跳劈虽然强但也看武器,比如武士上来给的打刀就属于跳劈对空,跳起来横着劈一刀,有时候都打不到站着的怪。而大剑则是竖着往地上砸,范围极大。
我举一个例子,就是我开地图第一次遇到红灵。就是等对方打完一套跳劈就完了。
我的战斗策略就是,遇事不决,举盾防御,然后跳劈。
至于BOSS战,依旧有难度,也许跳劈和法术都没啥作用,依靠的依旧是精准的闪躲后普攻(排除盾反)。
但我觉得这算是魂系列的乐趣之一。
如果随便什么BOSS战都能逃课,那也就没意思了。
因为本身男人就有从来不给不能实现具现的人或物花钱的本能,加上中国男性更加的世俗化,以及中国社会对中国男性硬件方面的要求,导致追星给女偶像花钱这样的事情很难发生在当下的中国男性身上。
但并不是说男性对女性的需求就少了,因为在色情业方面,中国的卖淫业一直有着强大的供需关系,各种洗脚房暗娼,从高端到低端,从几千到几十,从一线城市到留守农村,从企业董事到农民工,买春现象非常普遍存在。没有庞大的消费者,商品早就消失了,根本用不着扫。
即便是前段时间爆出来,某官员给冯某主播刷了上亿的公款,最后还不是为了见面发生性关系么。
而对于女团这种东西,用部分新闻下评论就是“不给肏零分”,中国男性可能会欣赏某个女明星,听听她的歌看看她的剧,但是要花钱的话没戏,这一点男性比女性鸡贼的很,才不会浪费时间花费金钱去搞什么粉丝应援。
在这点上,我认为女性就做的不如男性,十分的傻,把精力和金钱都浪费到了无用的地方,有那个精力多锻炼身体、学习知识、关心政治,才有机会在政治、经济、文化领域夺取占比。