天道酬勤,学无止境

如何为 QuickLook 插件开发/创建 GUI?(How to develop/create a GUI for a QuickLook plugin?)

问题

我看到很多 QuickLook 插件(比如 BetterZip Quick Look Generator)都带有漂亮整洁的界面……我尝试使用 HTML 和 JQuery 设计自己的 GUI,但我认为这不是一个好的解决方案(此外,最重要的是,Xcode 5.1 不再允许您使用<src>属性包含或打开来自其他目录的文件)。

我永远不会感谢 Jelle Vandebeeck 用他美丽而有用的帖子打开我的思想,但不幸的是,互联网上没有关于这个话题的内容(我认为 The Big Nerd Ranch Guide 上可能有一些东西,但它不会10 月前结束)

所以,我想知道你们中是否有人:

选项 A - 知道指南的标题,该指南可以解释如何以“教学”方式(如教科书,逐步)为我的 QuickLook 插件开发/创建 GUI;

选项 B - 可以在答案中写下几行代码来插入一个按钮和一个带有通常的“Hello World!”的文本字段。

我有一个与主要问题相关的子问题:是否可以保留 QuickLook 窗口(例如选择音频文件时出现的窗口)通常具有的半透明白色/灰色背景色?

非常感谢您!

回答1

在指南方面,文档中有 QuickLook Programming Guide。 它介绍了 QuickLook 的体系结构,并引导您完成构建 QuickLook 插件的各个步骤,包括返回丰富的 HTML 内容的步骤。

与此相关的是一些关于如何将 QuickLook 集成到您自己的应用程序的文档,但听起来您对插件方面更感兴趣。

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • How to develop/create a GUI for a QuickLook plugin?
    I saw lots of QuickLook plugins (like BetterZip Quick Look Generator) coming together with their nice and tidy interfaces...I tried to design the GUI of my own one using HTML and JQuery, but I don't think that it's a good solution (plus, on top of that, Xcode 5.1 doesn't allow you anymore to include or open files from other directories with the <src> attribute). I'll never thank enough Jelle Vandebeeck for opening my mind with his beautiful and helpful post, but unfortunately there's nothing on the internet regarding this topic (I think that there might be something on The Big Nerd Ranch Guide
  • 如何为 iOS 构建 Unity3d 插件(How to build Unity3d Plugin for iOS)
    问题 我有一个为 iOS 构建的非常小的 Objective-C 库,我想将它导出到 Unity。 我了解编写将所有调用编组到本机库的 csharp 包装器的基本过程,但我完全不知道从哪里开始。 任何人都可以逐步解释如何使用我的库创建统一包,以便我也可以将其分发给其他开发人员。 Unity3d 文档非常简短,没有解释任何内容。 谢谢。 回答1 好吧,在 Mac 上用 Unity3d 玩了几天后,我终于弄明白了。 本指南中的所有代码都是虚拟的。 我在 15 分钟左右写了这些东西,所以不要被错误和错别字所困扰。 1)打开Unity,创建新项目(File -> New Project)并将其保存在某处 2)当项目生成时,它具有以下结构: ProjectName/Assets (这就是你需要的) ProjectName/Library (别管那里有什么) ProjectName/ProjectSettings (你不关心) ProjectName/ProjectName.sln (MonoDevelop 项目) 3) 转到ProjectName/Assets并创建以下文件夹: Plugins/iOS ,因此最终您将拥有这样的文件夹结构: ProjectName/Assets/Plugins/iOS 4) 将编译后的库 (.a) 文件和必要的头文件放在ProjectName/Assets
  • 设计 GUI [关闭](Designing a GUI [closed])
    问题 关闭。 这个问题需要更加集中。 它目前不接受答案。 想改善这个问题吗? 更新问题,使其仅通过编辑这篇文章来关注一个问题。 2年前关闭。 改进这个问题 作为一个几乎没有(或没有)艺术倾向的开发人员,您将如何为应用程序设计 GUI? 特别是,我正在考虑桌面应用程序,但也欢迎与 Web 应用程序相关的任何内容。 我发现很难设计出让我和潜在用户都满意的东西。 我可以在网上查找配色方案,但我怎么知道在哪里放置按钮/文本框/等? 更新:澄清一下,我不是指使用什么控件等。 相反,是否有任何指导方针/提示来指示我何时应该使用按钮、组合、文本框等? 他们应该多长时间,我应该把它们放在表格上的什么地方? 回答1 您需要做的第一件事是摆脱开发人员的观点。 我们倾向于从表单、控件、按钮、列表、网格等方面进行思考。这往往会将我们推向对用户并不总是最佳的解决方案。 用户不想使用我们的软件。 (除非你在编写游戏)他们只想把事情做好。 因此,在设计 UI 和用户交互时,从那里开始是有意义的。 写下用户想用你的软件做什么。 想一想用户将如何做这些事情,以及您的应用程序可以做些什么来使事情变得更容易。 尝试使用与编程不同的工具。 这些让您再次思考 UI 小部件。 用铅笔和一张纸开始绘制草图,同时尝试考虑行为以及布局等。如果您对要构建的内容有清晰的了解,则可以开始考虑自己的情况去建造它。 这就是小部件
  • 在.NET中检测名称空间之间的依赖关系(Detecting dependencies between namespaces in .NET)
    问题 是否有任何实用程序可以检查一组托管程序集,并告诉您一个名称空间中的任何类型是否依赖于另一个名称空间? 例如,假设我有一个MyApp.BusinessRules命名空间,并且不希望它直接访问MyApp.GUI任何MyApp.GUI ,但是两个命名空间都在同一程序集中。 我的目标是能够编写一个自定义MSBuild任务,以验证各种耦合规则是否未被破坏。 到目前为止,我碰到的唯一一个看起来可以做到这一点的工具就是NDepend,但是我想知道是否有一个更简单的解决方案。 回答1 到目前为止,我碰到的唯一一个看起来可以做到这一点的工具就是NDepend,但是我想知道是否有一个更简单的解决方案。 我是NDepend工具的开发人员之一。 请让我们知道您在NDepend中发现了什么复杂之处,以及如何为您构想一个更简单的解决方案? NDepend提供了3种不同的方式来执行您想要的操作:依赖关系矩阵,依赖关系图,您还可以编写一些基于LINQ查询的代码规则(CQLinq)和规则以检测名称空间之间的循环,或强制执行某些特定的依赖关系。 例如,假设我有一个MyApp.BusinessRules命名空间,并且不希望它直接访问MyApp.GUI中的任何内容,但是两个命名空间都在同一程序集中。 为此,可以编写以下CQLinq规则,是否比这更简单? warnif count > 0 let
  • 如何从Python程序制作EXE文件? [复制](How can I make an EXE file from a Python program? [duplicate])
    问题 这个问题已经在这里有了答案: 使用Python创建可直接执行的跨平台GUI应用(12个答案) 如何为Windows用户部署Python? (4个答案) 从Python项目创建一个可执行文件(3个答案) 7年前关闭。 我已经使用了几个模块来制作适用于Python的EXE,但是我不确定自己是否做对了。 我应该怎么做,为什么? 请根据个人经验回答,并在必要时提供参考。 回答1 自动PY到EXE-使用简单的图形界面使用.py到.exe转换器,该界面使用Python中的Eel和PyInstaller构建。 py2exe可能是您想要的,但是它仅适用于Windows。 PyInstaller可在Windows和Linux上运行。 Py2app可在Mac上使用。 回答2 我发现此演示文稿非常有帮助。 我如何在Windows上分发Python应用程序-py2exe和InnoSetup 从站点: Python代码有许多部署选项。 我将分享在Windows上运行良好的工具,并使用py2exe和InnoSetup打包命令行工具和服务。 我将演示一个简单的构建脚本,该脚本将一步创建Windows二进制文件和InnoSetup安装程序。 此外,我将介绍使用py2exe时出现的常见错误,并提供有关对它们进行故障排除的提示。 这是一个简短的演讲,因此将进行后续的开放空间会议,以分享经验并互相帮助解决发行问题
  • 如何为非Qt应用程序创建Qt共享库(How to create a Qt shared library for a non-Qt application)
    问题 我已经开发了一个具有Qt共享库和Qt应用程序的应用程序。 Qt共享库导出一个几乎没有信号的类。 我为此使用了Q_DECL_EXPORT / Q_DECL_IMPORT宏。 现在,dll和应用程序之间的通信是通过Qt信号和插槽进行的,这需要使用QObject开发应用程序。 现在,我被要求使Qt共享库成为理想的DLL,其中客户端应用程序不依赖于Qt框架。 我看到了以下文章,但在非Qt应用程序中使用基于Qt的DLL,但不确定这是否是最佳方法。 能否请有人启发我开发可在非Qt应用程序中使用的Qt共享库。 回答1 您可以在库中的新线程中创建QCoreApplication的实例。 您应该检查仅创建一个实例,这是因为每个Qt应用程序应仅包含一个QCoreApplication 。 因此您的图书馆可能像: class Q_DECL_EXPORT SharedLibrary :public QObject { Q_OBJECT public: SharedLibrary(); private slots: void onStarted(); private: static int argc = 1; static char * argv[] = {"SharedLibrary", NULL}; static QCoreApplication * app = NULL; static
  • 如何为GUI进行OpenGL实时文本渲染?(How to do OpenGL live text-rendering for a GUI?)
    问题 我正在实现一个构建在OpenGL之上的GUI。 我遇到了每个GUI都会出现的问题-文本渲染。 我知道几种在OpenGL中渲染文本的方法,但是我想知道哪种方法最适合GUI。 通常,在GUI中,我们有两种类型的文本-静态文本和实时文本。 静态是很容易的-我们可以将TTF渲染到纹理上,而不必理会它。 是“实时”文本更让我感到困扰–想象一下控制台,或者在多人游戏中进行实时聊天。 我想到了几种选择: 没有特殊情况-每次文本更改时渲染并加载纹理,请记住仅在实际出现新文本时才重新渲染它,并尝试将较大的文本拆分为小部分(如每个聊天行)。 但是,如果分数线一直在变化,或者介绍文字呈现“每个字符”(某些科幻游戏中看到的打字机样式),这仍然会让我们感到困惑。 Quad-per字符-这似乎也是一种流行的解决方案,您可以使用ASCII表准备纹理并渲染带纹理的Quad字符。 但是,我对这种解决方案的效率有严重的怀疑。 还欢迎提供如何使速度更快的提示。 混合解决方案-但是我不知道如何干净地实现 因此,问题是-如何在OpenGL中高效地渲染文本? 如果这有帮助,我将使用STL / Boost繁重的C ++进行编码,并针对GForce 6和更高版本的显卡。 回答1 EDIT2:肖恩·巴雷特(Sean Barrett)刚刚为C / C ++ 3D程序员发布了位图字体。 编辑:另一个值得一看的代码瑰宝是Font
  • 如何为事件方法制作一个单独的单元,哪个IDE允许我在设计时分配给组件事件?(How to make a separate unit for event methods, which IDE allows me to assign to component events at design time?)
    问题 我正在使用带有事件处理程序的某些组件的表单。 现在,我想将那些事件处理程序(那些方法)移到一个单独的单元,仍然可以在设计时通过对象检查器将它们分配给组件事件。 是否可以仅为事件方法制作一个单独的单元,以便对象检查器允许我在设计时分配它们? 假设我要使用公共程序来创建该单元: unit Unit2; interface procedure ButtonClick(Sender: TObject); implementation procedure ButtonClick(Sender: TObject); begin // do something here end; end. 或使用具有这样的已发布方法的类: unit Unit2; interface type TMyClass = class published procedure ButtonClick(Sender: TObject); end; var MyClass: TMyClass; implementation { TMyClass } procedure TMyClass.ButtonClick(Sender: TObject); begin // do something here end; end. 如何为事件方法制作一个单独的单元,哪个IDE允许我在设计时分配给组件事件? 例如: 回答1
  • 如何为按钮添加动作?(How to add action to a button?)
    问题 我正在尝试为我创建的JButon输入事件: JButton botton1=new JButton("welcom to my show db! lets start"); botton1.setFont(new Font ("Eras Medium ITC",Font.BOLD,20)); this.add(botton1); JPanel Basic_panel=new JPanel(); Basic_panel.setName("SHOW DB "); Basic_panel.setBounds(x,y,width,hight); botton1.addActionListener(this) ; } public void actionPerformed(ActionEvent e) { if (e.getSource()==botton1){ 现在,我要输入我制作的另一个JFrame ,并使第一个消失。 如何? 回答1 对于您的原始问题: 如何为按钮添加动作? 您可能需要检查如何编写动作侦听器。 对于第二个问题: 现在,我要输入我制作的另一个JFrame,并使第一个消失。 如何? 请检查两种方法:) 选项1(推荐) 如果您想以正确的方式进行操作,则应使用@AndrewThompson在上面的评论中建议的CardLayout。 我还看到您使用的是Null布±
  • python常用的几种GUI解析
    在Python中,开始使用GUI编程的步骤并不复杂,但是它们要求用户开始做出一些选择。作为通用编程语言,每个常见操作系统都有可用的解释器,所以创建图形用户界面对于Python来说并不是难事。程序员可以有很多的选择,真正困难的是如何为用户创建一个简单的方式来与程序互动。在python中有几种常用的GUI,我们来解析下。1、Tkinter   如果有一个包可以被称为“Python的标准GUI工具包”,那么它一定就是Tkinter。Tkinter是Tcl / Tk的封装,是90年代初推出的流行图形界面。选择Tkinter的优势是它拥有大量的资源,包括书籍和代码示例,以及活跃的用户社区,如果您有任何疑问,社区成员都可能会帮助到你。除此之外,还有很多简单的入门示例,而且可读性非常好。   Tkinter可以使用Python许可证,在Tcl / Tk的BSD许可证之上。在python中可以无需安装Tkinter,就可以简单方便的使用它。例如:只需编程时import tkinterimport tkinter.messagebox 2、wxPython   WxPython带来了wxWidgets 跨平台GUI库,支持将本机C++引入到Python中。WxPython是一种稍微更现代化的方法,它看起来比不同操作系统上的Tkinter更加接近原生,因为它不会尝试创建自己的一组小部件
  • 适用于初学者的Git:权威的实用指南(Git for beginners: The definitive practical guide)
    问题 已锁定。 该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。 它目前不接受新的答案或互动。 好的,看完PJ Hyett的这篇文章后,我决定跳到最后,选择Git。 因此,我需要的是Git的初学者实用指南。 “初学者”定义为知道如何处理其编译器,在某种程度上了解Makefile是什么,并且在不十分了解它的情况下接触源代码控制的人。 “实用”被定义为该人员不想深入了解Git在后台执行的操作,甚至不关心(或知道)它的分发。 您的答案可能暗示了这种可能性,但请尝试针对希望将“主”存储库保留在已备份且安全的“服务器”上的初学者,并将其本地存储库视为“客户端”资源。 所以: 安装/设置 如何安装Git 您如何设置Git? 尝试涵盖Linux,Windows,Mac,并考虑“客户端/服务器”的心态。 在Windows上使用Msysgit设置GIT服务器您如何创建新的项目/存储库? 如何配置它以忽略不属于代码库的文件(.obj,.user等)? 使用代码 您如何获得最新代码? 您如何签出代码? 您如何提交更改? 您如何查看未提交的内容或当前代码库的状态? 您如何销毁不必要的提交? 您如何比较文件的两个修订,或者当前文件和先前的修订? 您如何查看文件修订历史? 您如何处理二进制文件(例如,visio文档或编译器环境)? 如何合并在“相同时间”更改的文件? 您如何撤消(还原或重置)提交?
  • 如何在 Delphi 中创建类似 Chrome 的应用程序,它在一个窗口内运行多个进程?(How to create Chrome like application in Delphi which runs multiple processes inside one Window?)
    问题 是否可以创建一个“应用程序组”,它可以在一个窗口下运行,但在单独的进程中运行,例如在 Chrome 浏览器中? 我想把一个应用程序分成多个部分,这样一个崩溃或卡住的过程就不会影响其他的,但仍然保持尽可能接近原始系统的外观和感觉。 我知道 Chrome 源代码可用,但是有没有为 Delphi 准备好一半的东西? 回答1 我想基本上你会创建多个进程,每个进程创建一个窗口/表单。 其中一个进程具有主窗口,其中嵌入了每个子窗口。 这就像调用 SetParent 一样简单。 不同进程中的窗口将使用 IPC(进程间通信)机制(如命名管道或窗口消息)相互通信。 有关在 Delphi 中使用 SetParent 的嵌入示例,请参阅此问题。 有关在 Delphi 中使用命名管道的示例,请参阅此问题。 回答2 看看 HeidiSQL 的 Delphi 代码。 这是一个很好的开源 MySQL 客户端,实现了这种机制。 阅读 Chrome 发布时发布的这条新闻: “谷歌在追赶 HeidiSQL?” :-) (来源:heidisql.com) 回答3 Harriv,您可以使用基于插件的方案。 你有一个主应用程序,它动态加载新闻功能。 这里有几个可用的库,我留下了一些。 构架 TMS 插件框架 JVCL 的 TJvPluginManager Delphi 插件框架九头蛇 教程 为您的 Delphi
  • 用Java构建GUI [关闭](Building a GUI in Java [closed])
    问题 关门了。 这个问题是基于意见的。 它当前不接受答案。 想要改善这个问题吗? 更新问题,以便通过编辑此帖子以事实和引用的形式回答。 7年前关闭。 改善这个问题 您更喜欢哪种机制来构建GUI:从头开始还是使用GUI生成软件? 回答1 我实际上很喜欢使用NetBeans GUI构建器来构建GUI。 事实是,它是相当可定制的-它允许您更改用于自动生成的代码和自动生成的代码(无双关语)(这对于自定义组件是必需的),它还允许“简单”的事件处理和约束力。 NetBeans GUI Builder不限于GroupLayout,而是允许您选择要使用的LayoutManager(在表单的属性对话框中有些隐藏的设置)。 但这并不总是最好的选择。 正如其他人已经说过的:当您需要完全控制应用程序,了解每个JLabel,每个JButton等时,MiG Layout是一个不错的选择。 我必须承认,我更喜欢Netbeans的GUI构建器,因为它易于使用并且具有所见即所得的视图。 但我也认为,无论是手动创建还是使用GUI设计器创建GUI代码都没有关系。 添加控件/自定义组件可以动态地同时使用这两种功能,并且两者都可以使用。 (从我的角度来看,如果可以使用GUI-Builder更快地完成GUI编码,那么我看不到手动编码的意义,因为我不明白为什么有人不愿意手动编码就麻烦了) 回答2
  • 如何为项目QtCreator创建子目录?(How to create a subdirectory for a project QtCreator?)
    问题 我想将我的Qt项目分成几个目录,因为它越来越大。 但是,当我单击QtCreator中的浏览器时,没有“添加目录”,在“添加新”中也没有这样的东西。 能以某种方式做到吗? 回答1 您可以使用的一种方法是为每个子目录添加一个项目包含文件。 Qt Creator以嵌套的方式在GUI中显示这些文件,并允许您向其中添加文件。 例如 在project.pro中 include(folder1/include.pri) 在folder1 / include.pri中 HEADERS += MyClass.h SOURCES += MyClass.cpp 等等 回答2 答:如何在QtCreator中为项目创建文件夹或子目录? 在QT Creator 3.1.x之前,您可以右键单击项目->“添加新... ”,然后将路径更改为所需的文件夹。 该文件夹必须存在,Qt不会为您创建该文件夹。 Qt负责.pro文件中的路径。 就是这样 ! 回答3 只是遇到了同样的问题,并且找到了一个相对简单的答案。 将file.cpp移至newFolder所需要做的就是将文件重命名(右键单击->重命名)为newFolder\file.cpp 。 Qt Creator会将其移至新文件夹并自动更新.pro文件。 回答4 从1.2.90版本开始,如果仅“过滤树”选项未设置为“简化树”,则Qt
  • Accurev SCM [关闭](Accurev SCM [closed])
    问题 就目前而言,这个问题不适合我们的问答形式。 我们希望答案得到事实、参考或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。 如果您认为此问题可以改进并可能重新打开,请访问帮助中心以获取指导。 8 年前关闭。 有人使用 Accurev 进行源代码控制管理吗? 我们正在(最终)从 StarTeam 切换到 Accurev。 我的第一印象是 GUI 工具严重缺乏,但是底层引擎和分支作为流的概念令人难以置信。 我们面临的最大困难是评估我们自己与 starteam 接口的 DIY 工具,或者用 DIY 新工具替换它们,或者寻找和购买合适的替代品。 此外,是否有人使用 AccuWork 组件进行问题管理? Starteam 有一个非常好的变更请求系统,而 AccuWork 并不能与之匹敌。 我们正在评估使用 Accuwork 或购买 JIRA 等 3rd 方软件包。 意见? 回答1 甜蜜的上帝之母是Accurev可怕的。 30万行代码? 与数以百万计的人一起尝试,数百名开发人员致力于数十个项目。 持续集成? 当然,在这个时候,开发人员可以通过在,比方说,Perforce公司定期做合并逼近,git的,反复无常,或者任何的实际获取的工作做了无数的其他工具,但它成了开发商为如何进行的选择。 对于架构师、领导、构建工程师或任何实际使用源代码控制进行切片和切块的人来说,Accurev
  • 如何在Qt Creator中使用MinGW-64(How to use MinGW-64 with Qt Creator)
    问题 我知道有很多关于此的帖子,但老实说我什么都不懂。 那么,如何为Qt Creator(开源5.7)安装工具包? 我已经下载并安装了MSYS2。...不知道该怎么做。 我已经下载并安装了Qt64-NG。...不知道下一步该怎么做。 我只是希望能够在Qt中进行开发,并选择了MinGW 32和MinGW 64之间。 提前致谢! 编辑:我也检查了维基页面。 大多数命令都无效。 有人告诉我它已经过时了。 回答1 我知道您的问题是如何为Qt Creator安装工具包,但首先我认为它需要介绍(对不起,您的眼睛,英语不是我的母语) 介绍 目的是在Windows下使用GCC编译器,这意味着我们需要MinGW(Windows的极简主义GNU)。 MinGW仅适用于32位,因此我们需要64位派生,这意味着要使用MinGW-w64或TDM-GCC口味。 MinGW,适用于32位应用程序的GCC编译器。 MinGW-w64,适用于32位和64位应用程序的GCC编译器。 TDM-GCC,适用于32位和64位应用程序的GCC编译器。 这样,我们可以在Windows中创建我们的应用程序/程序。 此外,我们还有其他两种不同的工具: Qt Framework库,用于创建具有多平台兼容性的GUI /接口。 Qt Creator,一个C / C ++编辑器,带有用于Qt Framework的其他编辑工具。
  • 初学者Mercurial:权威的实用指南(Mercurial for Beginners: The Definitive Practical Guide)
    问题 已锁定。 该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。 它目前不接受新的答案或互动。 受Git启发的初学者:权威的实用指南。 这是有关使用Mercurial面向初学者进行实际使用的信息的汇总。 初学者-接触过源代码控制却不太了解的程序员。 实用-涵盖大多数用户经常遇到的情况-创建存储库,分支,合并,从/到远程存储库的拉/推等 注意事项: 说明如何完成某件事,而不是如何实现。 每个答案处理一个问题。 尽可能清晰,简洁地回答。 编辑/扩展现有答案,而不是针对同一主题创建新答案。 请为想要了解更多信息的人提供指向Mercurial Wiki或HG Book的链接。 问题: 安装/设置 如何安装Mercurial? 如何设置Mercurial? 您如何创建新的项目/存储库? 如何配置它以忽略文件? 使用代码 您如何获得最新代码? 您如何签出代码? 您如何提交更改? 您如何查看未提交的内容或当前代码库的状态? 如何从存储库中删除文件? 您如何销毁不必要的提交? 您如何比较文件的两个修订,或者当前文件和先前的修订? 您如何查看文件或存储库的修订历史? 您如何处理二进制文件(例如,visio文档或编译器环境)? 如何合并在“同一时间”更改的文件? 您如何还原变更集? 您如何返回到以前的代码版本? 如何从特定变更集中提取补丁?
  • IDEA 插件开发
    文章目录 前言插件工程创建插件工程结构plugin.xml Plugin ActionAction 是什么创建Action注册Action快速创建Action运行插件打包插件安装插件 Plugin ComponentsComponents 类型创建 Component获取 Component 实例 持久化PropertiesComponentPersistentStateComponent注册持久化组件 GUI 面板创建GUI Form文件结构布局预览 插件上传示例项目 前言 官方开发文档:http://www.jetbrains.org/intellij/sdk/docs/welcome.html 首先需要开启 Plugin Devkit , IDEA 中默认带了 Plugin Devkit插件,但是没有开启。 插件工程 创建 插件工程结构 BundleFileFinder/ resources/ META-INF/ plugin.xml ... src/ com.yuyang.finder ... src 实现插件功能的classesresources 存放工程需要用到的资源文件,例如一些引用的jar包、图片资源等。 META-INF/plugin.xml 插件的配置文件,指定插件名称、描述、版本号、支持的 IntelliJ IDEA 版本、插件的 components 和
  • 如何为Qt Framework配置CLion IDE?(How to configure CLion IDE for Qt Framework?)
    问题 如何为Qt Framework配置CLion IDE? 该IDE是否与Qt兼容,或者是否有其他IDE与Qt兼容? 我只想尝试使用Qt Creator以外的其他功能。 回答1 在阅读Quora讨论之前,我和你一样绝望。 它对我来说很完美! 概括起来,有2个主要步骤: 首先,CLion使用CMake来编译您的代码。 它基于CMake配置文件(例如“ CMakeLists.txt”)。 您必须添加基于Qt的CMake命令(带有'find_package'和'target_link_libraries'的行): cmake_minimum_required(VERSION 3.5) project(myqtproject) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") set(SOURCE_FILES main.cpp) find_package(Qt5Widgets REQUIRED) <-- this line add_executable(myqtproject ${SOURCE_FILES}) target_link_libraries(myqtproject Qt5::Widgets) <-- this line 其次,CLion必须使用Qt安装的cmake二进制文件。 为此,请转到:'首选项'->'构建,执行
  • PyQt 和 MVC 模式(PyQt and MVC-pattern)
    问题 我正在尝试使用 PyQt 设计一个 MVC 模式。 我想将所有程序分成 3 部分: 从所有 Qt 类(模型)中抽象出来的类将模型中的数据提供给 Qt 应用程序(控制器)的类 Qt 应用程序本身具有定义的方法SignalsToSlots ,该方法将信号与控制器连接起来。 这是最优的吗? PyQt 开发中推荐使用什么方案? 回答1 你应该做的第一件事是使用 Qt4 设计器来设计你的 gui 并使用 pyuic4 来生成你的 python GUI。 这将是您的观点,您永远不要手动编辑这些 python 文件。 始终使用设计器进行更改,这可确保您的视图与模型和控件分开。 对于控制元素,创建一个从基本 gui 小部件(例如 QMainWindow)继承的中心类。 然后这个对象将包含一个成员 ui,它是您刚刚生成的视图对象。 这是教程中的一个示例 2013 年更新:这是关于 PyQt 和 MVC 模型 PyQt MVC 教程系列的最新教程 import sys from PyQt4 import QtCore, QtGui from edytor import Ui_notepad class StartQT4(QtGui.QMainWindow): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent)