如果有人不想使用IDE(只是编辑器,编译器和调试器),手动阻止GUI的最佳方法是什么?
我想到了普通C或C ++中的WinAPI应用程序。
答案 0 :(得分:7)
如果你拥有的只是Windows API,那么你将使用文本编辑器在代码中创建UI小部件。没有涉及XAML或其他中间语言或标记。如果你想做布局,你可以使用铅笔和纸或像Visio这样的图形工具来模拟用户界面,这样你就可以计算出你想要的一切。
或者,您可以将生锈的螺丝刀粘在您的小脚趾和小脚趾之间。这可能不那么痛苦。
编辑:其他海报曾谈到使用其他框架,如Qt或使用布局面板等。但问的问题是关于Windows API和C / C ++。这让我们回到Petzold。不是crap he's written recently,而是“编程Windows”的东西。这一天很棒,而且15年前事情已经完成了,但是如果没有非常非常好的理由我永远不会回去!
答案 1 :(得分:5)
Qt的布局允许您轻松实现基本GUI,而无需手工布置GUI。
答案 2 :(得分:2)
大部分答案都是错误的恕我直言。如果没有使用铅笔和纸张的GUI编辑器,你就不会给出精确的坐标,这太糟糕了。
我曾经使用hand创建表单,但我使用wxWidgets and sizer,使用手创建表单非常容易,只需添加sizer和控件。
在wxWidgets中还有各种各样的符号可以通过Jorg http://www.xs4all.nl/~jorgb/wb,您只需在一行中指定表单布局,它就会生成代码。我找不到链接。
答案 3 :(得分:1)
我推荐Gtk +。 TkInter也可以使用。
答案 4 :(得分:0)
所有GUI编辑器都会编写代码,以反映您在表单上放置的项目的属性。如果没有GUI编辑器,您需要自己编写所有代码。
答案 5 :(得分:0)
我不确定我是否在回答您的问题,但我通常会使用铅笔和一张纸来设计GUI。
我绘制了界面的布局,然后在模糊的线条中绘制了围绕DIV标签的框以及如何组合在一起的控件集。
然后我从那里编写HTML代码。在某些情况下,我发现使用铅笔比使用铅笔更有效。
答案 6 :(得分:0)
您可以手动编写.rc文件用于对话框。对于主窗口框架和视图等,您需要手动编写代码。如果您使用Visual Studio的向导之一来存储项目,则可以快速启动该代码。
答案 7 :(得分:0)
将它模拟在纸上或任何你想要的地方。
准确的边距,宽度,左对齐......
一旦你准确了解屏幕上每个元素的位置,你“只需”翻译它。
这是一种惩罚还是什么?
答案 8 :(得分:0)
开发GUI的体验与您正在使用的图形工具包有很大的不同。在Windows中,最典型的(我认为低级别)是MFC API,但它不是唯一的可能性,因为您还可以使用更高的方法使用GTK +或Tk等工具。 当然,您需要在Windows上安装库。
例如,在GTK +中,您可以使用XML文件来描述大部分GUI,这比使它们硬编码更容易。您还可以创建一个VBox对象并向其添加其他对象,并自动将对象定位在前一个对象下方,而不必测量和描述其XY位置。
在没有可视化编辑器的情况下制作GUI是完全可能的(我已经做了一些),但拥有可视化编辑器几乎总是一个很大的优势。但是,使用实际技术,最好使用更高级别的可用工具。使用原始MFC并且没有可视化编辑器在C / C ++上编程任何GUI可能非常困难。
我建议你至少看看GTK +(http://www.gtk.org/)你可以在C ++(也包括Python和C#等其他语言)中使用它,没有可视化编辑器就不会很难使用它。如果你改变主意,它也有视觉编辑。
答案 9 :(得分:0)
这很难,所以我建议使用支持文本替换宏的文本编辑器,并创建自己的“语法”来处理重复性任务。一些好的文本编辑器允许您定义自己的“intellisense”并且已经内置了Win32 API intellisense。
答案 10 :(得分:0)
您需要了解特定窗口系统的API。在MS Windows下,这将是Windows API,如果你尽可能低,或者在C ++中使用MFC。在任何情况下,这是一个尝试它并修复它并再次尝试并再修复它的过程,等等,令人作呕。几年前我不得不在X / Windows下做这件事,这很慢而且痛苦。您可能想尝试一次只是为了证明您可以做到这一点,但根据我的经验,这既不高效也不必要。
答案 11 :(得分:0)
使用Visio或其他一些可编程图表工具。
编写一个导出器,将绘图转换为库的C代码。 Win32,如果这是你的味道。
编写此导出器的一天工作将为您节省数小时的“compile-run-checkifitswhereiwantittobe”。
答案 12 :(得分:0)
我认为设计GUI的最佳方法是使用像Mozilla XUL这样的标记语言。但是,Mozilla实现了与Gecko引擎一起使用的XUL,而不是本机Windows应用程序。这就是我在Windows上创建自己的实现的原因,如果您有兴趣可以查看它:XULWin。